Rumah > Soal Jawab > teks badan
Saya baru-baru ini menggunakan selenium sebagai alat automasi yang mudah, tetapi apabila saya mengujinya, saya merasakan bahawa WebDriverWait wait = new WebDriverWait(pemandu,20); . id("_mail_component_68_68")).klik(); //Buka peti masuk
wait.until(ExpectedConditions.presenceOfElementLocated(By.xpath("//*[@sign='letter'][1]"))).click();
这两段代码明明页面已经有这个元素了,为啥还要等一段时间才进行操作,而且等待是时间也不是固定的,是我电脑问题,很头疼啊,演示的时候非常尴尬的等好长时间。
selenium 用的3.4
火狐用的5.3
statik {System.setProperty("webdriver.firefox.marionette","C:Program Files (x86)Mozilla Firefoxgeckodriver.exe");} //pemacu penyemak imbas Firefoxstatic String url="http://freemail.163.com/"; //Alamat dibuka oleh pelayar
Stream awam openEmail(Stream<String> userNameSream,String<String> passwordStream) melontar 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 "出现其他问题";
}
}
我想大声告诉你2017-05-27 17:43:08
WebDriverWait tidak akan melaksanakan klik sehingga semuanya dimuatkan
过去多啦不再A梦2017-05-27 17:43:08
Saya tidak tahu mengapa, tetapi ia menyelesaikan masalah saya menggunakan Firefox dan ia menjadi lebih pantas selepas beralih kepada Google