Python 3.x 硒复选框不';不要在蟒蛇身上工作

Python 3.x 硒复选框不';不要在蟒蛇身上工作,python-3.x,selenium-webdriver,Python 3.x,Selenium Webdriver,我试图测试是否选中了复选框 如何使用seleniumPython3检查复选框的状态 driver.find_element_by_id('privacyCheck1').is_selected() driver.find_element_by_id('privacyCheck1').click() driver.find_element_by_xpath(".//*[@id='privacyCheck1']").click() <div class="mail_privacy_ch

我试图测试是否选中了复选框

如何使用
selenium
Python3检查复选框的状态

driver.find_element_by_id('privacyCheck1').is_selected()
driver.find_element_by_id('privacyCheck1').click()
driver.find_element_by_xpath(".//*[@id='privacyCheck1']").click()


  <div class="mail_privacy_check">
    <p class="comment">
      <input type="checkbox" id="privacyCheck1" class="privacyCheck">
      <label for="privacyCheck1">...</label>
    </p>
    <div class="tableware typecolor">...</div>
  </div>
</div>
driver.find_element_by_id('privacyCheck1')。是否选择了()
驱动程序。按\u id(“privacyCheck1”)查找\u元素。单击()
驱动程序。通过xpath(“./*[@id='privacyCheck1']”)查找元素。单击()

...

...
由于设计问题或其他未知问题,有一段时间
WebElement::click()
无法按预期工作

因此,在本例中,selenium还提供了使用
JavaScript
code以无提示方式执行某些操作的功能,以消除该问题

为此,有一个方法名,您可以在其中直接调用当前窗口框架/iframe上的JavaScript代码来解决您的问题。在这个方法中,第一个参数输入是一段JavaScript代码,第二个参数是对象的数组,可以在JavaScript代码中作为JavaScript变量使用。在JavaScript代码中,对象输入的这个数组接受
参数
变量

因此,您可以按如下方式执行单击:-

driver.execute_script("arguments[0].click()", driver.find_element_by_id('privacyCheck1'))

注意:-JavaScript注入
HTMLElement.click()
不应在测试上下文中使用。这违背了测试的目的。第一个原因是它不会像真实的
点击(聚焦、模糊、鼠标向下、鼠标右键…
那样生成所有事件,第二个原因是它不能保证真实用户可以与元素交互。但是,为了摆脱这个问题,您可以将其用作替代解决方案。

由于设计问题或其他未知问题,有时
WebElement::click()
无法按预期工作

因此,在本例中,selenium还提供了使用
JavaScript
code以无提示方式执行某些操作的功能,以消除该问题

为此,有一个方法名,您可以在其中直接调用当前窗口框架/iframe上的JavaScript代码来解决您的问题。在这个方法中,第一个参数输入是一段JavaScript代码,第二个参数是对象的数组,可以在JavaScript代码中作为JavaScript变量使用。在JavaScript代码中,对象输入的这个数组接受
参数
变量

因此,您可以按如下方式执行单击:-

driver.execute_script("arguments[0].click()", driver.find_element_by_id('privacyCheck1'))

注意:-JavaScript注入
HTMLElement.click()
不应在测试上下文中使用。这违背了测试的目的。第一个原因是它不会像真实的
点击(聚焦、模糊、鼠标向下、鼠标右键…
那样生成所有事件,第二个原因是它不能保证真实用户可以与元素交互。但是要解决这个问题,你可以将其作为替代解决方案。

什么是不起作用的??如果有任何异常也需要共享,并作为
驱动程序尝试一次。通过\u css\u选择器(“label[for='privacyCheck1'])查找\u元素。单击()
让我知道..@SaurabhGaur我的意思是…无法检测复选框…这意味着失败。@SaurabhGaur我也担心您的代码对我没有帮助…它检测标签而不是复选框…@SaurabhGaur它可以工作~!你是最棒的!!在这种情况下,我必须使用脚本。我不知道:)你什么意思不工作??如果有任何异常也需要共享,并作为
驱动程序尝试一次。通过\u css\u选择器(“label[for='privacyCheck1'])查找\u元素。单击()
让我知道..@SaurabhGaur我的意思是…无法检测复选框…这意味着失败。@SaurabhGaur我也担心您的代码对我没有帮助…它检测标签而不是复选框…@SaurabhGaur它可以工作~!你是最棒的!!在这种情况下,我必须使用脚本。我不知道:)