繁体   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