首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何使用selenium查找页面上是否存在文本

如何使用selenium查找页面上是否存在文本
EN

Stack Overflow用户
提问于 2013-02-20 15:31:49
回答 3查看 84.7K关注 0票数 24

如果文本存在,则单击xyz,否则单击abc

我使用下面的if语句:

代码语言:javascript
复制
if(driver.findElement(By.xpath("/html/body/div[2]/div/div/div/div/div/div/table/tbody/tr[6]/td[2]")).isDisplayed())
{    
    driver.findElement(By.linkText("logout")).getAttribute("href");          
} else {          
    driver.findElement(By.xpath("/html/body/div/div/div/a[2]")).click();
}

脚本失败,并显示以下错误消息:

代码语言:javascript
复制
Unable to locate element: {"method":"xpath","selector":"/html/body/div[2]/div/div/div/div/div/div/table/tbody/tr[6]/td[2]"}
EN

回答 3

Stack Overflow用户

发布于 2013-02-20 16:33:55

这里我们可以使用try,除了使用python web驱动的函数。请参见下面的代码

代码语言:javascript
复制
webtable=driver.find_element_by_xpath("xpath value")
print webtable.text
try:
   xyz=driver.find_element_by_xpath(("xpath value")
   xyz.click()

except:
   abc=driver.find_element_by_xpath(("xpath value")
   abc.click()
票数 1
EN

Stack Overflow用户

发布于 2013-02-20 21:38:29

您需要将"IsDisplayed“包装在一个try catch中。只有当元素存在时,才能调用IsDisplayed。

您可能还希望覆盖隐式超时,否则try/catch将花费很长时间。

票数 1
EN

Stack Overflow用户

发布于 2016-12-22 02:25:50

尝试下面的代码:

代码语言:javascript
复制
Assert.assertTrue(driver.getPageSource().contains(textOnThePage));
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14974508

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档