程序员最近都爱上了这个网站  程序员们快来瞅瞅吧!  it98k网:it98k.com

本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长

+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

暂无数据

如何在Selenium Webdriver(Python)中找到包含特定文本的元素?

发布于2019-08-21 17:37     阅读(817)     评论(0)     点赞(1)     收藏(0)


我正在尝试使用Selenium测试复杂的javascript界面​​(使用Python界面,以及跨多个浏览器)。我有许多形式的按钮:

<div>My Button</div>

我希望能够根据“我的按钮”搜索按钮(或者不区分大小写的部分匹配,例如“我的按钮”或“按钮”)

我发现这非常困难,在某种程度上,我觉得我错过了一些明显的东西。我到目前为止最好的事情是:

driver.find_elements_by_xpath('//div[contains(text(), "' + text + '")]')

但是,这是区分大小写的。我尝试过的另一件事是遍历页面上的所有div,并检查element.text属性。但是,每次你得到表格的情况:

<div class="outer"><div class="inner">My Button</div></div>

div.outer还有“My Button”作为文本。为了解决这个问题,我试图查看div.outer是否是div.inner的父节点,但是无法弄清楚如何做到这一点(element.get_element_by_xpath('..')返回一个元素的父节点,但它测试不等于div.outer)。此外,迭代浏览页面上的所有元素似乎非常慢,至少使用Chrome webdriver。

想法?

编辑:这个问题有点模糊。在这里询问(并回答)一个更具体的版本:如何在不包含子元素文本的情况下获取Selenium WebDriver中的元素文本(通过Python api)?


解决方案


请尝试以下方法:

driver.find_elements_by_xpath("//*[contains(text(), 'My Button')]")


所属网站分类: 技术文章 > 问答

作者:黑洞官方问答小能手

链接:https://www.pythonheidong.com/blog/article/50842/ffe72176a0b571e4ad01/

来源:python黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

1 0
收藏该文
已收藏

评论内容:(最多支持255个字符)