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