簡體   English   中英

使用 selenium python 在元素中查找文本

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM