我想使用硒选择此复选框<input type="checkbox" name="rg" onchange="onCheckReg(this)" id="beauty_perfume_screening__c" value="beauty_perfume_screening__c" tabindex="-1" aria-labelledby="check-button-Beauty Perfume Screening check-group-header">我尝试通过 xpath 和 id 查找,但总是出现错误无法定位元素wd.find_element_by_id("beauty_perfume_screening__c").click()有任何想法吗?
2 回答
手掌心
TA贡献1942条经验 获得超3个赞
使用xpath
driver.find_element_by_xpath("//input[@name='rg']").click()
建议使用其中一种等待方法 -
WebDriverWait(driver, 10).until( EC.presence_of_element_located(By.XPATH, "//input[@name='rg']")
用于选择 iframe -
root1 = driver.find_element_by_xpath("//iframe") driver.switch_to.frame(root1)
繁花不似锦
TA贡献1851条经验 获得超4个赞
要单击带有保存文本的元素,您可以使用以下定位器策略之一:
使用
id
:wd.find_element_by_id("beauty_perfume_screening__c").click()
使用
css_selector
:wd.find_element_by_css_selector("input#beauty_perfume_screening__c[name='rg'][value='beauty_perfume_screening__c']").click()
使用
xpath
:wd.find_element_by_xpath("//input[@id='beauty_perfume_screening__c' and @name='rg'][@value='beauty_perfume_screening__c']").click()
理想情况下,要单击需要引发WebDriverWait 的元素element_to_be_clickable()
,您可以使用以下任一定位器策略:
使用
ID
:WebDriverWait(wd, 20).until(EC.element_to_be_clickable((By.ID, "beauty_perfume_screening__c"))).click()
使用
CSS_SELECTOR
:WebDriverWait(wd, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "input#beauty_perfume_screening__c[name='rg'][value='beauty_perfume_screening__c']"))).click()
使用
XPATH
:WebDriverWait(wd, 20).until(EC.element_to_be_clickable((By.XPATH, "//input[@id='beauty_perfume_screening__c' and @name='rg'][@value='beauty_perfume_screening__c']"))).click()
注意:您必须添加以下导入:
from selenium.webdriver.support.ui import WebDriverWaitfrom selenium.webdriver.common.by import Byfrom selenium.webdriver.support import expected_conditions as EC
重要提示:如果该元素位于 a 内,
<iframe>
则必须切换到<iframe>
第一个元素。您可以在以下位置找到一些相关讨论:
iframe下处理#document的方法
通过 Selenium 和 python 切换到 iframe
添加回答
举报
0/150
提交
取消