为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用 selenium 单击此复选框

如何使用 selenium 单击此复选框

慕森王 2023-07-27 10:00:40
我想使用硒选择此复选框<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)

//img1.sycdn.imooc.com//64c1d0050001a80903440104.jpg

查看完整回答
反对 回复 2023-07-27
?
繁花不似锦

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


查看完整回答
反对 回复 2023-07-27
  • 2 回答
  • 0 关注
  • 66 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信