繁体   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