通过selenium Java

时间:2016-07-12 05:55:12

标签: java selenium radio-button

这是HTML,我只想通过selenium web driver(java)测试它。有错误

  

线程中的异常" main"   org.openqa.selenium.ElementNotVisibleException:元素不可见

可能低于HTML将帮助您理解我的问题

<html>
<head></head>
<body>
<ul class="list-unstyled">
<li>
<label class="chkbox">
<input type="radio" required="required" data-optioncode="displayDefaultForm"            data-statusid="22" data-module="19" name="status">
<span class="lbl"></span>  
</label>
<button class="btn module-status-style btn-xs mb5" style="background-color: #ffffff; border-color: #e1e1e1; color:#666666;">Unqualified</button>
 </li>
 <li>
 <label class="chkbox">
 <input type="radio" required="required" data-optioncode="displayDefaultForm" data-statusid="23" data-module="19" name="status">
 <span class="lbl"></span>
 </label>
 <button class="btn module-status-style btn-xs mb5" style="background-color: #e4e7ea; border-color: #cccccc; color:#636e7b;">Attempted to Contact</button>
</li>
<li>
<label class="chkbox">
<input type="radio" required="required" checked="" data-optioncode="displayDefaultForm" data-statusid="24" data-module="19" name="status">
<span class="lbl"></span>
</label>
<button class="btn module-status-style btn-xs mb5" style="background-color: #5bc0de; border-color: #46b8da; color:#ffffff;">Contacted</button>
</li>
<li>
<label class="chkbox">
<input type="radio" required="required" data-optioncode="displayConvertedForm" data-statusid="25" data-module="19" name="status">
<span class="lbl"></span>
</label>
<button class="btn module-status-style btn-xs mb5" style="background-color: #1caf9a; border-color: #17a08c; color:#ffffff;">Converted</button>
</li>
</ul>
</body>
</html>

请帮我通过java selenuim检查单选按钮

5 个答案:

答案 0 :(得分:1)

该异常表示该元素不可见。 Selenium无法对不可见的元素执行操作,因为它旨在模拟用户行为。检查CSS样式并确保您尝试单击的元素可见。如果需要单击隐藏元素,请使用JavascriptExecutor直接执行JavaScript单击。

答案 1 :(得分:1)

根据您提供的HTML,您应该尝试以下选择广播: -

    [HttpPost]
    [ValidateAntiForgeryToken]
    public ActionResult CreateMeeting(Meeting meeting)
    {
        return RedirectToAction("ReinviteVisitor2", "Home", new { visitorId = meeting.SubjectId });
    }

希望它能奏效...... :)

答案 2 :(得分:1)

正如Saurabh所说,您的代码中没有元素 frm-modulestatuses 。我检查了你的代码,点击单选按钮你可以简单地使用xpath =。// ul / li [4] / label / input,其中li [4]代表最后一个按钮 as - Xpath showing button及其工作

答案 3 :(得分:1)

我的查询有以下方法: 使用xpath://input[@type='radio']

代码:

WebElement ele = driver.fidnElement(By.xpath("//input[@type='radio']"));
ele.click();

尝试上述方法。

答案 4 :(得分:0)

我可以想到两个场景,为什么你的单选按钮不可见。

  1. 当您的脚本点击它时,您的单选按钮不可见
  2. 您的单选按钮确实已隐藏,并且您需要以某种方式显示它,例如,单击按钮或展开列表。
  3. 一般解决方案是:

    1:如果您的脚本点击它时您的单选按钮不可见:您需要等待它出现,

    WebDriverWait wait = new WebDriverWait(webDriver, timeoutInSeconds);
    wait.until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector("input[type='radio']"));
    

    2:如果你的单选按钮被隐藏了,你需要以某种方式让它出现,我不知道你的网页看起来如何,所以你必须在你自己的OR节目中弄清楚这一点我们的网页。