簡體   English   中英

如何使用Selenium Webdriver和Java從元素中獲取文本?

[英]How can I get text from element with Selenium webdriver and Java?

在此處輸入圖片說明

我的代碼:

        WebDriver driver = new SafariDriver();

        driver.get("http://bet.hkjc.com/football/default.aspx");
        WebElement matchs = driver.findElement(By.cssSelector("span.Head to Head"));

        System.out.println(matchs);

        driver.quit();

我如何爬行Manchester Utd Celta Vigo

WebElement matchs = driver.findElement(By.xpath("//a[@title='Head to Head']"));
System.out.println(matchs.getText());

firefox使用firebugfirepath插件,檢查該元素並獲取xpath並將其放在此代碼的雙引號中:

System.out.println(driver.findElement(By.xpath("")).getText()); 

如果您不知道如何使用Firebug和Firepath,請參考鏈接

您可以通過css選擇器或xpath選擇器找到元素

通過使用xpath

driver.findElement(By.xpath("//a[@title='Head to Head']"));

通過使用CSS選擇器

driver.findElement(By.cssSelector("span > a[title='Head to Head']")); 

或者如果沒有找到匹配項,請嘗試類似這樣的操作

driver.findElement(By.cssSelector("td.cteams.ttgR2>span>a[title='Head to Head']"));

注意:在您的代碼中,您嘗試使用CSS選擇器中的span.Head to Head . 點代表類,根據您的路徑,您將找到具有“ Head to Head”類名稱的span標簽,該類名稱在您的dom中不存在,因為這是錨標簽的標題。

最初通過Firefox的FirebugFirepath插件獲得了Xpath或CSS路徑

探索一些博客以獲得清晰的了解,您將可以自己創建

同樣參考此鏈接

我認為以上所有答案對您都不起作用,並提供了另一個答案。

我可以看到兩個文本都在“ a”標簽下。 因此,想法是導航到該元素並使用getText() -返回可見的文本。

String word = driver.findElement(By.xpath("//span/a")).getText();
System.out.println(word);

希望這對您有用。

在我所有的測試中,我都使用類似的getAttribute來獲取文本,並且在所有驅動程序上都可以正常工作:

assertEquals(strCity,txtCity.getAttribute(“ value”)));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM