2017-07-19 167 views
-1

我想補充的等待時間爲5秒,然後運行下一行硒等待幾秒鐘,然後運行下一行

driver.findElement(By.xpath("html/body/div[2]/bookking- 
navbar/nav/div/div/div[1]/div[3]/ul/li[1]/authentication/a/span")).click(); 

String value= driver.findElement(By.xpath(".//* 
    [@id='username']")).getText(); 

在這裏我要加5秒等待,然後運行下一行,如果使用了Thread.Sleep(500)的網頁加載了太多的時間

driver.findElement(By.xpath(".//*[@id='username']")).clear(); 

driver.findElement(By.xpath(".//*[@id='username']")).sendKeys(value); 

driver.findElement(By.xpath(".//*[@id='password']")).sendKeys("apple123"); 


driver.findElement(By.xpath("html/body/div[1]/div/divdiv/button")).click(); 
+0

Selenium使用多種語言。請爲您使用的驅動程序添加標籤。 – derloopkat

+0

我可以知道爲什麼你需要等待5秒 –

+0

你不必把你的代碼睡覺。設置Selenium超時。這樣,在引發異常之前,它會繼續嘗試查找幾秒鐘的標記。 – derloopkat

回答

2

爲了使線程睡眠:

了Thread.sleep(5000);

但是這不是一個很好的決定,因爲你的測試會很慢。使用webdriver等待:

WebDriverWait wait = new WebDriverWait(driver,5000); wait.until(ExpectedConditions.elementToBeClickable(By.xpath(「xpathHere」)));

它將等到elementToBeClickable(或者您可以選擇其他任何條件)並繼續測試執行。否則,如果在超時期間沒有滿足條件 - 將拋出異常。

相關問題