簡體   English   中英

如何使用硒單擊此復選框

[英]How do I click on this check box using selenium

我想使用 selenium 選擇此復選框

<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 和 by id 查找,但總是出現無法定位元素的錯誤

wd.find_element_by_id("beauty_perfume_screening__c").click()

有任何想法嗎?

使用 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)

在此處輸入圖片說明

要單擊帶有文本的元素作為保存,您可以使用以下任一定位器策略

  • 使用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()

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

  • 使用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 WebDriverWait from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as EC

重要提示:如果元素在<iframe>您必須先切換到<iframe>

您可以在以下位置找到一些相關討論:


參考

您可以在以下位置找到有關NoSuchElementException的一些相關討論:

暫無
暫無

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

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