【问题标题】:Selenium:Cant click on radio button,check boxSelenium:无法单击单选按钮,复选框
【发布时间】:2016-09-23 12:32:20
【问题描述】:

我是硒的新手。我试图从表单中选择单选按钮。它有身份证。 By.id("test12")).getAttribute("value")),显示正确的值,但如果我这样做 By.id("test12")).click(); 没有点击元素。
driver.findElement(By.xpath("//*@id='test13']")).getAttribute("Value")); 还显示名称。但click() 不起作用。

我得到 org.openqa.selenium.ElementNotVisibleException: 元素当前不可见,因此可能无法与之交互 命令持续时间或超时:30.09 秒

<input id="test12" class="with-gap" type="radio" value="P" name="group1">
<input id="test13" class="with-gap" type="radio" value="C" name="group1">

    List<WebElement> eRB=driver.findElements(By.name("group1"));
    System.out.println(eRB.size());
    for(int i=0;i<eRB.size();i++)
    {
       System.out.println(eRB.get(i).getAttribute("id")+" is Displayed = "+eRB.get(i).isDisplayed());
    }

o/p 是:

4
test13 false
test12 false
test13 false
test12 false

谁能告诉我做错了什么?谢谢。

【问题讨论】:

  • 可以分享网站吗?
  • 尝试把isDisplayed换成别的,这个方法可能对checkbox和radiobox无效。
  • 请分享您的html代码。
  • @Kishan Patel 网站是:jobsforher.com/employer/account/sign_up

标签: selenium webdriver


【解决方案1】:

@Suba Narayanan,在点击之前使用 webdriver wait 检查元素的可见性。

WebDriverWait wait = new WebDriverWait(driver, 30);
    wait.until(ExpectedConditions.elementToBeClickable(By.id("test12"))).click();

【讨论】:

    【解决方案2】:

    试试下面的代码来点击单选按钮:

    driver.get("https://www.jobsforher.com/employer/account/sign_up");
    Thread.sleep(5000L);
    driver.findElement(By.xpath("//*[@id='test2']/div/div/div[1]/div[1]/div[2]/div/label")).click();
    Thread.sleep(5000L);
    

    您可以通过等待特定元素来自定义您的等待。 让我知道更多查询。 快乐学习。 :)

    【讨论】:

      猜你喜欢
      • 2021-10-28
      • 1970-01-01
      • 2021-08-13
      • 2019-08-18
      • 1970-01-01
      • 2012-05-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多