web - java selenium 设置显式等待 没有效果
问题描述
最近使用的selenium,做个简单的自动化工具,但是测试的时候感觉 WebDriverWait wait = new WebDriverWait(driver,20);没啥效果啊,在我进入邮箱之后wait.until(ExpectedConditions.presenceOfElementLocated(By.id('_mail_component_68_68'))).click(); //打开收件箱
wait.until(ExpectedConditions.presenceOfElementLocated(By.xpath('//*[@sign=’letter’][1]'))).click(); 这两段代码明明页面已经有这个元素了,为啥还要等一段时间才进行操作,而且等待是时间也不是固定的,是我电脑问题,很头疼啊,演示的时候非常尴尬的等好长时间。 selenium 用的3.4 火狐用的5.3
static {System.setProperty('webdriver.firefox.marionette','C:Program Files (x86)Mozilla Firefoxgeckodriver.exe');} //火狐浏览器驱动
static String url='http://freemail.163.com/';//浏览器打开的地址
public String openEmail(Stream<String> userNameSream,Stream<String> passwordStream) throws Exception {
long startTime=System.currentTimeMillis(); //获取开始时间 WebDriver driver = new FirefoxDriver(); //启动浏览器driver.manage().window().maximize(); //最大化浏览器WebDriverWait wait = new WebDriverWait(driver,20);driver.get(url);//打开连接driver.switchTo().frame('x-URS-iframe');//定位到iframe框架中userNameSream.forEach(e -> driver.findElement(By.name('email')).sendKeys(e));//输入账号passwordStream.forEach(p -> driver.findElement(By.name('password')).sendKeys(p));//输入账号driver.findElement(By.id('dologin')).click();//点击登录Thread.sleep(3000);if(driver.getTitle().contains('网易邮箱')){ wait.until(ExpectedConditions.presenceOfElementLocated(By.id('_mail_component_68_68'))).click(); //打开收件箱 wait.until(ExpectedConditions.presenceOfElementLocated(By.xpath('//*[@sign=’letter’][1]'))).click(); return '成功,从程序开始到打开第一封邮件用时'+(System.currentTimeMillis()-startTime)/1000+'秒';}else{ try { WebElement loginMsg = driver.findElement(By.className('ferrorhead')); return loginMsg.getText(); }catch(Exception e){return '出现其他问题'; }}
问题解答
回答1:WebDriverWait是全部加载完才会执行click
回答2:不知道为什么 但是解决了 我用的火狐 换谷歌之后就变得很快了
相关文章:
1. python如何不改动文件的情况下修改文件的 修改日期2. node.js - node_moduls太多了3. angular.js - 不适用其他构建工具,怎么搭建angular1项目4. python - django 里自定义的 login 方法,如何使用 login_required()5. css3 - [CSS] 动画效果 3D翻转bug6. mysql优化 - mysql count(id)查询速度如何优化?7. angular.js - Angular路由和express路由的组合使用问题8. mysql主从 - 请教下mysql 主动-被动模式的双主配置 和 主从配置在应用上有什么区别?9. 主从备份 - 跪求mysql 高可用主从方案10. java8中,逻辑与 & 符号用在接口类上代表什么意思
![css3 - [CSS] 动画效果 3D翻转bug](http://www.haobala.com/attached/image/news/202304/110831f073.png)