Я пытаюсь узнать селен, одна из проблем, которые у меня есть, ждет элементов, я объясню это.Selenium wait for a element
Я делаю java-программу для автоматического перевода с помощью google translate. Но из-за асинхронного характера перевода Google нет способа получить элемент, не дожидаясь его, код выходит из строя, потому что он не находит этот элемент, и этот элемент не существует в то время, когда это требует код. должен подождать немного, пока сервер не ответит на ваш запрос.
Я думаю, что это не эстриктная ситуация с селеном и веб-страницами, поэтому я считаю, что должен быть простой способ сделать это. К моменту, когда это код, который я создал для управления ситуацией.
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, это поможет вам. –