[英]Finding text in element with selenium python
由於您在 DevTools 中,您可以右鍵單擊並選擇“復制 XPath”。 這將為您提供一個特定且唯一的元素選擇器,因此您無需擔心從根開始一直計算父 div! 學習 XPaths 是一個很棒的工具,請參見此處: https : //www.w3schools.com/xml/xpath_syntax.asp
然后在您的 Selenium 代碼中,您可以編寫:
awaiting_review = driver.find_element_by_xpath('# paste xpath here').text
if awaiting_review == 'Awaiting Review':
# whatever you want to happen
說明:- 使用//span[contains(text(), 'Awaiting Review')]
您可以定位元素並可以使用find_elements
檢查size if > 0
,如果是,那么您可以斷言,(我只是使用打印),如果不是,代碼將轉到其他部分。
您可以嘗試使用以下代碼:
try:
if len(driver.find_elements(By.XPATH, "//span[contains(text(), 'Awaiting Review')]")) > 0 :
print("Awaiting Review is present")
else:
print("Awaiting Review is not present")
except:
print("something went wrong. ")
pass
更新 1:
try:
if len(driver.find_elements(By.CSS_SELECTOR, "div#air-pipeline-board heade.air-pipeline-lane span")) > 0 :
print("Awaiting Review is present")
else:
print("Awaiting Review is not present")
except:
print("something went wrong. ")
pass
要簡單地驗證頁面上是否存在包含該文本的元素,您可以執行以下操作:
if driver.find_elements(By.XPATH, "//span[contains(text(), 'Awaiting Review')]"):
print("Element is presented")
else:
print("Eelement not found")
driver.find_elements
返回與傳遞的定位器匹配的元素列表。
因此,如果頁面上顯示包含Awaiting Review
文本的span
元素,它將返回它。 否則它將返回一個空列表。
非空列表被 Python 視為True
而空列表是False
。
請試試這個。
elems = driver.find_elements_by_css_selector("#vacancy-pipeline-header>header>div>span")
if elems:
if elems[0].text == "Awaiting Review":
print('valid!')
else
print('invalid!')
else
print('Element is not exist!')
如果您熟悉 CSS 選擇器,這對您有好處。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.