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();それを指摘してくれてありがとう –