web - java selenium 設定明確等待 沒有效果
習慣沉默
習慣沉默 2017-05-27 17:41:08
0
2
675

最近使用的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 "出现其他问题";
    }
}
習慣沉默
習慣沉默

全部回覆(2)
我想大声告诉你

WebDriverWait是全部載入完才會執行click

过去多啦不再A梦

不知道為什麼 但是解決了 我用的火狐 換谷歌之後就變得很快了

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!