我正在尝试使用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的文本也是“我的按钮”。为了解决这个问题,我试着查看div.outer是否是div.inner的父对象,但是我不知道怎么做(element.get_element_by_xpath('..') )返回一个元素的父元素,但它的测试结果不等于div.outer)。
此外,遍历页面上的所有元素似乎真的很慢,至少使用Chrome webdriver是如此。
想法?
我在这里询问(并回答)了一个更具体的版本:
https://stackoverflow.com/questions/12323403
复制相似问题