web - java selenium tetapan tunggu eksplisit tidak mempunyai kesan
習慣沉默
習慣沉默 2017-05-27 17:41:08
0
2
747

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 Firefox

static 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 "出现其他问题";
    }
}
習慣沉默
習慣沉默

membalas semua(2)
我想大声告诉你

WebDriverWait tidak akan melaksanakan klik sehingga semuanya dimuatkan

过去多啦不再A梦

Saya tidak tahu mengapa, tetapi ia menyelesaikan masalah saya menggunakan Firefox dan ia menjadi lebih pantas selepas beralih kepada Google

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan