Я использую Selenium2
с Java API Version 2.53.1
и chrome driver Version 2.24
, чтобы распечатать несколько значений.Selenium Java API, почему driver.findElement (By.tagName ("title")). GetText() всегда возвращает пусто
Но для тега: <title>test</title>
функция driver.findElement(By.tagName("title")).getText();
всегда возвращает пустой.
Мой вопрос: как вернуть функции API снова?
BTW: Selenium3
бета и сломан на chromedriver
и geckodriver
, тоже!
С другой стороны, функции: -
driver.findElement(By.tagName("title")).getTagName();
и driver.getTitle();
возвращает правильные значения.
я пытался обойти эту проблему с кодом JavaScript без толку:
JavascriptExecutor js;
if (driver instanceof JavascriptExecutor) {
js = (JavascriptExecutor)driver;
a_tag_name_title = (ArrayList<RemoteWebElement>) js.executeScript("return document.getElementsByTagName('title');");
System.out.println("Is empty? " + a_tag_name_title.isEmpty());
for (RemoteWebElement object: a_tag_name_title){
System.out.println("Title tag: " + object.getText());
}
found = false;
for (RemoteWebElement object: a_tag_name_title){
found = object.getText().contains("title");
}
assertTrue("Title tag not found", found); //sanitiy check if "getElementsByTagName" is working, too
}
Спасибо большое! bye ... – Leder
Кажется, было бы намного проще использовать 'driver.getTitle();'. – JeffC
@JeffC вы правы, OP уже использует его, он отлично работает, но ему любопытно узнать, почему 'driver.findElement (By.tagName (« title »)). GetText();' возвращает пусто ??? Благодаря этому –