我正在嘗試使用Selenium(使用Python接口并在多個瀏覽器上)測試復(fù)雜的javascript接口。我有許多形式的按鈕:<div>My Button</div>我希望能夠基于“我的按鈕”(或不區(qū)分大小寫的部分匹配項(xiàng),例如“我的按鈕”或“按鈕”)搜索按鈕我覺得這非常困難,在某種程度上我覺得自己缺少明顯的東西。到目前為止,我最好的是:driver.find_elements_by_xpath('//div[contains(text(), "' + text + '")]')但是,這是區(qū)分大小寫的。我嘗試過的另一件事是遍歷頁面上的所有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網(wǎng)絡(luò)驅(qū)動程序,迭代頁面上的所有元素似乎真的很慢。有想法嗎?
3 回答

翻翻過去那場雪
TA貢獻(xiàn)2065條經(jīng)驗(yàn) 獲得超14個贊
請嘗試以下操作:
driver.find_elements_by_xpath("//*[contains(text(), 'My Button')]")

森林海
TA貢獻(xiàn)2011條經(jīng)驗(yàn) 獲得超2個贊
您可以嘗試使用xpath:
'//div[contains(text(), "{0}") and @class="inner"]'.format(text)

Qyouu
TA貢獻(xiàn)1786條經(jīng)驗(yàn) 獲得超11個贊
您還可以將其與“頁面對象模式”一起使用,例如:
試試這個代碼:
@FindBy(xpath = "//*[contains(text(), 'Best Choice')]")
WebElement buttonBestChoice;
添加回答
舉報
0/150
提交
取消