我想學習硒,我有一個問題是等待元素,我會解釋它。硒等元素
我正在做一個Java程序,使用谷歌翻譯自動翻譯。 但由於谷歌翻譯的異步性質,沒有辦法在沒有等待的情況下獲取元素,代碼崩潰是因爲它沒有找到元素,並且元素在代碼需要時不存在,所以您必須稍等一會,直到服務器響應您的請求。
我認爲這不是一個疏遠的情況處理硒和網頁,所以我認爲必須有一個簡單的方法來做到這一點。 到目前爲止,這是我創建的用於管理情況的代碼。
public void translation(String s) {
System.setProperty("webdriver.chrome.driver", "C:\\Robots\\chromedriver.exe");
WebElement webDriver = new ChromeDriver();
這是代碼我覺得應該有一個更好的方式做,
我使用的方法要等到翻譯準備
waitForElement("//*[@id='result_box']");
System.out.println("prhase: " + s + " tranlsation: " + response.getText());
webDriver.close();
}
private void waitForElement(String element) {
WebElement response;
do {
try {
Thread.sleep(300);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
response = webDriver.findElement(By.xpath(element));
} while (response.getText().isEmpty());
}
燦你說我怎麼容易嗎?
有一個多等待方法來等待一個元素引用這個鏈接http://www.seleniumhq.org/docs/04_webdriver_advanced.jsp它會幫助你。 –