14

gettextSelenium WebDriver で以下のコードを見つけることができません。

<a id="551" class="blueTextNormal1 spc" onclick="sPh(this,'079');return false;" title="079">Country</a>

国の値を取得したい。私は使用してみましたxpath

driver.findElement(By.xpath("//*[@id='551']").getText())

しかし、値は返されません。で試したところ

driver.findElement(By.xpath("//*[@id='551']")).getAttribute("title"))

「079」という値を取得しています。

どうすれば続行できますか?

4

9 に答える 9

27

コードにもよります。以下のコードを試してみてください。

の代わりに、表示されない HTML を含め、探しているものを返す whichgetText()を使用してください。getAttribute("innerHTML")

<div class="no-docs-selected">
    <p class="icon-alert">Please select a doc</p>
</div>

を探していましたPlease select a docが、 で成功しませんでしたgetText()。しかし、以下のものはうまくいきました。

driver.findElement(By.xpath("//p[@class='icon-alert']")).getAttribute("innerHTML");
于 2014-07-14T13:31:58.953 に答える
1

これは私のために働いた:

System.out.println(driver.findElement(By.id("error")).getAttribute("textContent"));

コード:

driver.get("https://login.salesforce.com/");
driver.findElement(By.id("username")).sendKeys("Hello");
driver.findElement(By.id("password")).sendKeys("Hello");
driver.findElement(By.id("Login")).click();
System.out.println(driver.findElement(By.id("error")).getAttribute("textContent"));
driver.close();
于 2021-06-06T14:34:58.257 に答える
0

スタック オーバーフローへのコピー時のタイプミスでない限り、getText の前に括弧がありません。driver.findElement(By.xpath("//*[@id='551']").getText())に 変更 driver.findElement(By.xpath("//*[@id='551']")).getText()

次のコードを試してみましたが、完璧に機能しました。

WebDriver driver = new ChromeDriver();
driver.get("C:\\test.html");
System.out.println(driver.findElement(By.xpath("//*[@id='551']")).getText());
System.out.println(driver.findElement(By.xpath("//*@id='551']")).getAttribute("title"));
于 2013-05-23T15:52:08.393 に答える
-1

同様の状況で、これは私にとってはうまくいきました:

.getAttribute("innerHTML");
.getAttribute("innerText");
.getAttribute("outerText");
于 2016-12-22T21:58:23.470 に答える