我試圖用Selenium測試一個複雜的JavaScript接口(使用Python接口和跨多個瀏覽器)。我有許多形式的按鈕:如何在Selenium Webdriver(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網絡驅動器。
想法?
編輯:這個問題有點含糊。問(回答)一個更具體的版本在這裏:How to get text of an element in Selenium WebDriver (via the Python api) without including child element text?
目前的答案並沒有爲我工作。這一個做到了:http://sqa.stackexchange.com/a/2486 – alejandro