selenium_java
等待
页面全加载
ChromeOptions options=new ChromeOptions();
/**
*(1) NONE: 当html下载完成之后,不等待解析完成,selenium会直接返回
*(2) EAGER: 要等待整个dom树加载完成,即DOMContentLoaded这个事件完成,仅对html的内容进行下载解析
*(3) NORMAL: 即正常情况下,selenium会等待整个界面加载完成(指对html和子资源的下载与解析,如JS文件,图片等,不包括ajax)
*/
options.setPageLoadStrategy(PageLoadStrategy.NONE);
//添加参数,关闭拦截弹窗
options.addArguments("disable-popup-blocking");
options.addArguments("disable-notifications");
//关闭被自动化控制的提示
options.addArguments("disable-infobars");
options.addArguments("disable-extensions");
options.addArguments("start-maximized");
driver = new ChromeDriver(options);
private void Form1_Load(object sender, EventArgs e)
{
ChromeOptions options = new ChromeOptions();
options.AddArguments("--disable-extensions"); // to disable extension
options.AddArguments("--disable-notifications"); // to disable notification
options.AddArguments("--disable-application-cache"); // to disable cache
options.AddArgument("--safebrowsing-disable-download-protection");
options.AddArgument("ignore-certificate-errors");
options.AddArgument("--disable-popup-blocking");
options.AddArgument("--disable-gpu");
options.AddArgument("--incognito");
options.AddUserProfilePreference("disable-popup-blocking", "true");
driveri = new ChromeDriver(options);
driveri.Navigate().GoToUrl("http://web.com");
IJavaScriptExecutor js = (IJavaScriptExecutor)driveri;
js.ExecuteScript("window.alert = function() {};");
}
显示等待50秒
WebElement ele_14 = (new WebDriverWait(webDriver, 50)).until(ExpectedConditions.elementToBeClickable(By.xpath(SIT_Objects.tab_MPF)));
//visibilityOfElementLocated
public boolean isPresent(String xpath, int waitingTimeInSec) {
try {
WebDriverWait wait = new WebDriverWait(webDriver, waitingTimeInSec);
wait.until(ExpectedConditions.presenceOfElementLocated(By.xpath(xpath)));
} catch (TimeoutException e) {
return false;
}
return true;
}
隐式等待
driver.manage().timeouts().implicitlyWait(50,TimeUnit.SECONDS); //与显式等待同时存在时,以其中最大值为准。
js
driver = new ChromeDriver(options);
Javascript = ((JavascriptExecutor) driver);
boolean jsReady=(Boolean)Javascript.executeScript("return document.readyState").toString().equals("complete");
while(!jsReady){
Thread.sleep(100);
}
//Wait for jQuery to load
{
ExpectedCondition<Boolean> jQueryLoad = driver -> ((Long) ((JavascriptExecutor) driver).executeScript("return jQuery.active") == 0);
boolean jqueryReady = (Boolean) js.executeScript("return jQuery.active==0");
if (!jqueryReady) {
//System.out.println("JQuery is NOT Ready!");
wait.until(jQueryLoad);
}
wait.until(jQueryLoad);
}
//Wait for ANGULAR to load
{
String angularReadyScript = "return angular.element(document).injector().get('$http').pendingRequests.length === 0";
ExpectedCondition<Boolean> angularLoad = driver -> Boolean.valueOf(((JavascriptExecutor) driver).executeScript(angularReadyScript).toString());
boolean angularReady = Boolean.valueOf(js.executeScript(angularReadyScript).toString());
if (!angularReady) {
//System.out.println("ANGULAR is NOT Ready!");
wait.until(angularLoad);
}
}
//Wait for Javascript to load
{
ExpectedCondition<Boolean> jsLoad = driver -> ((JavascriptExecutor) driver).executeScript("return document.readyState").toString()
.equals("complete");
boolean jsReady = (Boolean) js.executeScript("return document.readyState").toString().equals("complete");
//Wait Javascript until it is Ready!
if (!jsReady) {
//System.out.println("JS in NOT Ready!");
wait.until(jsLoad);
}
}
刷新
driver.navigate().refresh();
代理
Proxy proxy = new Proxy();
proxy.setNoProxy("connections.manulife.com;intranet01.manulife.com;ifshome.manulife.com;adfs.man;ulife.com;sts.manulife.com;ctx.manulife.com;mlilapp00.manulife.com;*.manulife.;net;centralsharepoint;205.*.*.*;209.*.*.*;192.168.*.*;10.*.*.*;*.phbdomain.loc;al;*.manulifeusa.com;ato.manulife.com;hkitsp.ap.manulife.com;connections.manul;ife.com;ars7.manulife.com;*.ap.manulife.com;globalgrc.manulife.com;*.mfcgd.com;*.pcf.manulife.com;*.gsdcf.manulife.com;giam.manulife.com;*.mbpscd.com;*.plat;form.manulife.io;*.manulife.io;Ifsgl.manulife.com;*.mbpscd.com;join.poolweb.ma;nulife.com;20.139.52.44;*.japan.corp.manulife.com;*.mliph.manulife.com;*.mliph.manulife.com.ph;set4success.manulife.com;digipasshk.manulife.com;digipasskl.manulife.com;citrixstore.jhancock.com;mywcasd01.dc1.manulife.net.my");
options.setProxy(proxy);
Refer
https://cloud.tencent.com/developer/article/1497428
selenium_java的更多相关文章
- Selenium_Java版本安装及初试
[环境] ①JDK版本:jdk1.8.0_73 ②Eclipse:jee-mars-4.5.2 ③Selenium:selenium-java-3.5.3 ④GoogleChrome:60 ⑤chro ...
- Selenium_java coding
1)public class HelloWorld { // class 是类的意思 // 类名指的是class后面这个词,这个词是我们起的名 public static void main(Stri ...
- 【自动化学习笔记】_环境搭建Selenium2+Eclipse+Java+TestNG_(一)
目录 第一步 安装JDK 第二步 下载Eclipse 第三步 在Eclipse中安装TestNG 第四步 下载Selenium IDE.SeleniumRC.IEDriverServer 第五步 下 ...
- JDK eclipse selenium 安装以及环境变量的配置
原文地址https://www.cnblogs.com/zmhsoup/p/5249663.html [自动化学习笔记]_环境搭建Selenium2+Eclipse+Java+TestNG_(一) 目 ...
- selenium学习网址
1.http://www.testclass.net/selenium_java/# testclass网址 2.http://www.yiibai.com/selenium/seleniu ...
- 环境搭建Selenium2+Eclipse+Java+TestNG_(一)
第一步 安装JDK 第二步 下载Eclipse 第三步 在Eclipse中安装TestNG 第四步 下载Selenium IDE.SeleniumRC.IEDriverServer 第五步 下载Fi ...
- java selenium 自动化笔记-不是0基础,至少有java基础
本来今天要学GitHub的,但是在群里问了下小伙伴时被暴击.说我学的东西太多太杂,不是很深入,都是皮毛.哎~自己早深有意识到,因个人能力吧,找的资料都不是很全,加上实际工作没有应用到.所以写一篇sel ...
- selenium基于java 一 软件安装
学习网站 http://www.testclass.net/selenium_java/ 一·安装java环境及eclipse,网上教程较多不讲 二·下载火狐浏览器(旧版) 下载地址:链接: http ...
- java中selenium判断某个元素是否存在
selenium工具 直接通过findElement方法获取某个元素,如果该元素不存在肯定会报错,selenium又没有可以判断该元素是否存在的方法 于是我们可以手写一个工具类,来判断这个元素是否存在 ...
随机推荐
- vue项目使用qrcodejs2生成二维码
最近写项目遇到一个需求,根据后台给的地址生成二维码,在网上找了下,qrcodejs2使用还是比较多,试了下也能实现需求,就整理下使用方法,方便以后使用 1. 安装包 cnpm i qrcodejs ...
- Swift调用微信支付宝SDK(Swift4.0)
1.第一步在程序入口注册微信 (支付宝不需要) func application(_ application: UIApplication, didFinishLaunchingWithOption ...
- VMwarevSphere Client 链接 vCenter Server中的主机,开启虚拟机提示:在主机当前连接状况下不允许执行该操作
VMwarevSphere Client 链接 vCenter Server中的主机,开启虚拟机提示:在主机当前连接状况下不允许执行该操作很多原因都可以导致该问题出现,例如 vCenter Serve ...
- Odoo的菜单项
用户界面的入口是菜单项,菜单项形成一个层级结构,最顶级项为应用,其下一级为每个应用的主菜单.还可以添加更深的子菜单.可操作菜单与窗口操作关联,它告诉客户端在点击了菜单项后应执行什么操作. 菜单项存储在 ...
- 一篇文章让你彻底明白__getattr__、__getattribute__、__getitem__的用法与执行原理
__getattr__ 在Python中,当我们试图访问一个不存在的属性的时候,会报出一个AttributeError.但是如何才能避免这一点呢?于是__getattr__便闪亮登场了 当访问一个不存 ...
- 手机 简易浏览器 WebView的基本使用 返回 缓存 进度条
public class MainActivity extends AppCompatActivity { private WebView webView; private String url = ...
- idea管理tomcat
第一步,打开idea的文件——>设置——选择Application Servers: 第二步,点击+号,下拉选择Tomcat Server: 如果已经配置了环境变量CATALINA_HOME,也 ...
- USRP B210 更改A通道或B通道
USRP B210 更改A通道或B通道: 默认是A通道进行发射/接收,或设置 Mb0:Subdev Spec: A:A 设置B通道进行发射/接收,设置 Mb0:Subdev Spec: A:B
- thymeleaf错误 org.xml.sax.SAXParseException: 在实体引用中, 实体名称必须紧跟在 ‘&’ 后面
在thymeleaf的js中使用&,<,>等符号时会产生这种问题,因为thymeleaf是采用xml解析的方式进行替换的,所以javascript中&这样的xml实体转义字 ...
- 搭建私有CA
一.实验目的 搭建私有CA并使其可以实现公司内部的的签名服务. 二.实验环境: 系统架构:Centos7(服务器).Centos6(需要申请证书的服务器)需要的软件包:openssl.openssl- ...