Selenium使用总结(Java版本)
硒在最近的发展中被广泛应用,因为它以前没有被使用过,并且已经走了太多的坑。这是一张唱片。 配置要点: 1.Web驱动程序应该与浏览器版本相对应,chrome使用chrome驱动程序和chrome浏览器,Firefox使用geckodrive和Firefox浏览器 2.支持headless:本地开发使用mac环境,默认支持;linux需要安装xvf8(虚拟GUI) 3.maven项目构建,使用selenium-3.9.1或者最新版本 4.linux配置参考:chrome: ; firefox: chrome启动参数参考: 1.系统环境变量配置:webdriver.chrome.driver=DRIVER_PATH 2.常用options配置: 3.webdriver实例化:
System.setProperty("webdriver.chrome.driver",env.getProperty("path.chrome.driver" WebDriver webDriver = ChromeOptions options = options.addArguments("--headless");
options.addExtensions( File(env.getProperty("path.chrome.proxy")));
webDriver = ChromeDriver(options);
} }
(webDriver != }
1.系统环境变量配置:webdriver.gecko.driver=DRIVER_PATH 2.常用options配置: preference配置: 3.webdriver实例化:
System.setProperty("webdriver.gecko.driver",env.getProperty("path.gecko.driver" WebDriver webDriver = FirefoxOptions options = options.addArguments("--headless");
FirefoxProfile profile = profile.addExtensions( File(env.getProperty("path.chrome.proxy")));
profile.setPreference("permissions.default.image",2);
webDriver = } }
(webDriver != }
4.注意:默认加载会屏蔽部分请求(js请求等) 参考: 1.获取页面:driver.get(url); 2.关闭页面:driver.close(); 关闭进程:driver.quit(); 1.线程强制休眠等待,Thread.sleep(3000); 2.隐式等待(全局等待),为所有操作设置等待时间,超时抛出异常; 3.可以为单个操作设置显式等待(可控等待,推荐使用)、等待触发事件和等待时间,可以自定义事件,可以随时间抛出异常 WebDriverWait wait = WebDriverWait(webDriver,60);
wait.until(ExpectedConditions.presenceOfElementLocated(By.id("xx")));
WebElement frame = wait.until((ExpectedCondition
|