很难按下按钮

2024-05-12 18:01:27 发布

您现在位置:Python中文网/ 问答频道 /正文

如何按“全部”按钮?你知道吗

<label for="f_agreements_all">
                    <input type="checkbox" id="f_agreements_all">
                    <span></span>
                    <span class="permText">I accept all</span>
                </label>

不幸的是,找到“全部”按钮并单击它是不起作用的。跨距覆盖了整个按钮17x17px,当fèu all是16x16时在它下面。你知道怎么点击它吗?enter image description here


Tags: idforinputtypeall按钮labelclass
3条回答

使用vanilla JS的一种方法是:

const checkbox = document.getElementById('f_agreements_all');
checkbox.click();

快速查看Python Selenium 2 WebDriver API文档,您可以尝试:

driver.find_element_by_id("f_agreements_all").click()

你能试试下面的xpath吗:

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC


button=WebDriverWait(browser, 10).until(
EC.element_to_be_clickable((By.XPATH, "//li[@class='formCheckbox agreements all-agreements']//span[1]")))
button.click()

要单击元素,必须为element_to_be_clickable()导出WebDriverWait,并且可以使用以下任一解决方案:

  • 使用CSS_SELECTOR

    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "label[for='f_agreements_all']"))).click()
    
  • 使用XPATH

    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//label[@for='f_agreements_all']"))).click()
    
  • 注意:必须添加以下导入:

    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support import expected_conditions as EC
    

相关问题 更多 >