使用Seleniumvalidation之间的文本
我需要validation网页上的特定插槽是否已加载。 我在main()
函数中使用Selenium WebDriver(我应该使用JUnit测试用例吗?)。
在具有特定ID的任何
之间检索文本的方法有哪些?
如果给出此页面 :
当给出
,我需要提取
“通过在亚马逊上销售商品来赚钱”,
“在亚马逊上卖”,
“在Amazon.com上销售您的商品。亚马逊可以帮助您拓展业务并吸引更多客户。”
我应该使用哪种方法?
要确保加载元素,请使用隐式和显式等待 。
通常,当您需要与元素进行交互时,隐式等待就足够了。 一旦设置,它就用于每个元素查找。 根据我的经验,这对于95%的案例来说已经足够了。
driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
如果你需要一些更高级的等待(或只是使用等待一次),显式等待就在你身边。
有三种常用方法可以检索具有我所知道的特定id
的元素:
-
首选方式:
driver.findElement(By.id("elemId"));
-
如果您需要以元素开头然后搜索其后代,这是一个好方法:
driver.findElement(By.cssSelector("#elemId")); driver.findElement(By.xpath("id('elemId')"));
-
很多人使用的方式,因为他们对XPath感到满意:
driver.findElement(By.xpath("//*[@id='elemId']"));
要了解有关CSS选择器和XPath的更多信息,请参阅Web上的任何教程。
关于文字:
String text = driver.findElement(By.id("center-2")).getText(); System.out.println(text);
输出
通过在亚马逊上销售物品赚钱在亚马逊上销售您在Amazon.com上销售商品。 亚马逊可以帮助您拓展业务并吸引更多客户。
如果您想独立完成这三件事,请使用例如:
String headline = driver.findElement(By.cssSelector("#center-2 .headline")).getText(); System.out.println(headline); String link = driver.findElement(By.cssSelector("#center-2 .link")).getText(); System.out.println(link); String body = driver.findElement(By.cssSelector("#center-2 .body")).getText(); System.out.println(body);
Interesting Posts