我知道有一种使用xpath和javascript的方法
element = browser.find_element_by_xpath("//*[contains(text(),'text')]")
但是此方法不会检测仅定义为标签的元素/标签,例如:
<p>
<span class="text-primary">UK</span>
+44 (0) 1865 987 667<br>
Piccadilly Gardens, 49 Piccadilly, Manchester, M1 2AP </p>
在这种情况下,如果文本为 +44(0)1865 987 ,则不会获取该元素。
答案 0 :(得分:1)
我的期望是您需要使用以下功能组合:
将所有内容放在一起:
element = driver.find_element_by_xpath("//*[contains(normalize-space(),'+44 (0) 1865 987 667')]")
演示:
答案 1 :(得分:0)
在Selenium中,您可以尝试进行Sub string
匹配。
text="+44 (0) 1865 987 667"
print(WebDriverWait(driver,20).until(EC.visibility_of_element_located((By.XPATH,"//*[contains(.,'" + text + "')]"))).text)