簡體   English   中英

如何使用 Selenium 和 Python 查找元素

[英]How to find element using Selenium and Python

剛開始使用 python 學習 selenium 並在查找元素的基礎知識方面遇到了麻煩。 這是一個搜索/文本框,我試圖單擊它並向其發送文本。

這是我從 Edge 獲得的元素的代碼。

<div class="box" id="ClinicSrch" style="display:block">
  <span align="lb">Last:</span> 
<input type="search" name="NameLast" size="15" class="white1" value="" maxlength="25">
  &nbsp;First: <input type="search" name="NameFirst" size="15" class="white1" value="" maxlength="25"><br>

這是我的代碼:

driver.find_element(By.XPATH, '//*[@id="ClinicSrch"]/input[1]').click()

從邊緣檢查工具復制元素時得到的 xpath 是:

//*[@id="ClinicSrch"]/input[1]

完整的 xpath 是:

/html/body/form/div[1]/div[1]/input[1]

我一直在嘗試使用其他具有類似 xpath 但沒有任何效果的字段和按鈕。 我總是沒有這樣的元素。

要定位姓氏搜索字段,您可以使用以下任一定位器策略

  • 使用css_selector

     element = driver.find_element(By.CSS_SELECTOR, "input[name='NameLast']")
  • 使用xpath

     element = driver.find_element(By.XPATH, "//input[@name='NameLast']")

理想情況下,要定位可點擊元素,您需要為element_to_be_clickable()引入WebDriverWait ,您可以使用以下任一定位器策略

  • 使用CSS_SELECTOR

     element = WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "input[name='NameLast']")))
  • 使用XPATH

     element = WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//input[@name='NameLast']")))
  • 注意:您必須添加以下導入:

     from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as EC

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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