创建webdriver chrome 实例

        $options = [
            '--no-sandbox',                        // 解决DevToolsActivePort文件不存在的报错
            'window-size=1400,1000',                // 指定浏览器分辨率
            //   '--disable-gpu',                       // 谷歌文档提到需要加上这个属性来规避bug
            //   '--hide-scrollbars',                   // 隐藏滚动条, 应对一些特殊页面
            //  'blink-settings=imagesEnabled=false',  // 不加载图片, 提升速度
            '--ignore-certificate-errors',
            '--ignore-ssl-errors',
            '--unlimited-storage', //存储权限
            //'--headless',                          // 浏览器不提供可视化页面
        ];
        $capabilitiesOptions = array_merge([
            WebDriverCapabilityType::BROWSER_NAME => WebDriverBrowserType::CHROME,
            WebDriverCapabilityType::PLATFORM     => WebDriverPlatform::ANY,
        ], $capabilitiesOptions);
        $capabilities = new DesiredCapabilities($capabilitiesOptions);
        $host = 'http://127.0.0.1:9151'; //chrome服务器地址
        $chromeOptions = new ChromeOptions();
        $chromeOptions->addArguments($options);
//        $options->setExperimentalOption('useAutomationExtension',false);
        $chromeOptions->setExperimentalOption('excludeSwitches', ['enable-automation', 'enable-logging']);
        //处理权限弹窗
        $prefs = [
            'profile.default_content_setting_values' => [
                'clipboard' => 1,
                'notifications' => 2,
            ]
        ];
        $chromeOptions->setExperimentalOption('prefs', $prefs);
        $capabilities->setCapability(ChromeOptions::CAPABILITY, $chromeOptions);

        $driver = RemoteWebDriver::create($host, $capabilities);

剪贴板通知桌面通知权限弹窗处理

        $prefs = [
            'profile.default_content_setting_values' => [
                'clipboard' => 1,
                'notifications' => 2,
            ]
        ];
        $chromeOptions->setExperimentalOption('prefs', $prefs);

alert, confirm, prompt 弹窗
1、Selenium中的WebDriver对象提供了switch_to_alert()方法定位(捕获)到各种弹窗(alert、confirm、prompt)

2、WebDriver对象在处理弹框时主要有以下几种方法:
⑴ switch_to_alert():定位弹出的对话框
⑵ text:获取对话框文本值
⑶ accept():相当于点击"确认"
⑷ dismiss():相当于点击"取消"
⑸ send_keys():输入值,该方法只能在prompt类弹框中使用

//点确定按钮
$driver->switchTo()->alert()->accept()

相关文章:https://www.cnblogs.com/dongdongtest/p/16301093.html

标签: none

添加新评论