我不確定實作這些目標的正確 XPath 語法:
網頁上元素的文本內容應該正好是
"ABC",除了:我想使用
translate以便我可以搜索"abc"和查找"ABC"我想要做
normalize-space
我知道的語法translate和normalize-text使用時contains,即:
"//*[contains(translate(normalize-space(.), '%s), '%s')]" % ("ABC', 'abc'", "abc")
# ↑ Translation ↑ Target
這將在搜索時找到一個包含 "ABC"like的元素。"ABCD""abc"
但是,當我不使用時,我正在努力使用正確的語法contains,即文本內容必須完全正確, "ABC"而不是"ABCD"被找到"abc"——同時執行normalize-space.
我知道你可以找到一個確切的文本,例如使用:
//*[normalize-space(text()) = "ABC"]
我如何組合這些部分?
注意:我正在使用 Firefox for Selenium 通過driver.find_element_by_xpath. 據我所知,Firefox 使用 XPath 1 而不是 XPath 2 之類的任何更高版本。
uj5u.com熱心網友回復:
如果使用//*[translate(normalize-space(), 'abc', 'ABC') = 'ABC'],則選擇規范化字串值是ABC.
uj5u.com熱心網友回復:
您可以or在 XPath 運算式中使用運算子。
所以你可以使用這個定位器:
//*[normalize-space(text()) = "ABC" or normalize-space(text()) = "abc"]
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/377634.html
下一篇:我收到一個錯誤:AttributeError:'WebElement'objecthasnoattribute'sendkeys'
