【问题标题】:Selecting a checkbox which has an href link min the label associated with it using selenium web driver使用 selenium Web 驱动程序选择一个具有 href 链接的复选框,并使用与其关联的标签
【发布时间】:2016-03-10 17:01:18
【问题描述】:

我需要使用 selenium webdriver 选择一个复选框。当我尝试找到 xpath 时,复选框的 xpath 以及标签正在获取。我找到了它的 xpath 并单击了该元素。 但是与复选框关联的标签中有一个链接。所以当我点击元素时,标签中的链接被点击并被重定向到另一个页面。

在这种情况下如何选择复选框?

【问题讨论】:

  • 提供html 或您尝试过的相同代码和代码的链接
  • 勾选方框接受我们的条款和条件
  • 显示你用来点击复选框的xpath
  • @Amrutha 检查解决方案。只需选择元素并检查是否未选中,然后单击它。我已经测试过它工作正常的代码。
  • @Anderson Xpath: //*[@id='terms_checkbox']

标签: selenium xpath checkbox


【解决方案1】:

试试下面的代码。

var checkBox = driver.FindElement(By.Id("terms_checkbox"));
            if (!checkBox.Selected)
            {
                checkBox.Click();
            }

如果有任何问题,请告诉我。

【讨论】:

  • 请添加您的完整 html。您在上面的 cmets 中给出了哪个 html。我已经尝试过了,它工作正常。当您在浏览器中打开页面时,还有一件事复选框是否可见。
  • 在浏览器中打开页面时复选框可见。
【解决方案2】:

您应该在单击元素之前使其可见,因此首先运行JavaScript。在Python 中,这看起来像

driver.execute_script('document.getElementById("terms_checkbox").style.visibility="visible";')

你也可能需要这个

driver.execute_script('document.getElementById("terms_checkbox").style.display="block";')

你没有指定你的编程语言,所以如果你使用不同的语言,你需要采用这个Python代码

更新

我不确定,但在Java 中猜测应该是这样的

JavascriptExecutor js = (JavascriptExecutor)driver;
js.executeScript('document.getElementById("terms_checkbox").style.visibility="visible";');
js.executeScript('document.getElementById("terms_checkbox").style.display="block";');

【讨论】:

  • @Anderson:我正在使用 Java
  • @Anderson:当我在我的代码中包含这些行时,我在 js.executeScript('document.getElementById("terms_checkbox").style.visibility="visible";' );错误是“无效的字符常量”
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-10-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-30
  • 1970-01-01
  • 2017-04-10
相关资源
最近更新 更多