如何使用PhantomJS和Selenium单击Java中的复选框?

时间:2014-05-22 12:26:12

标签: java firefox selenium checkbox phantomjs

我希望使用带有Selenuim的PhantomJS在Java中选择一个简单的复选框。

我使用此代码使用Firefox进行了此操作

driver.findElement(By.xpath("//label[@for='terms-checkbox']")).click();

但是当我改为PhantomJS驱动程序时,我收到了一个错误:隐形元素......

1 个答案:

答案 0 :(得分:0)

我的案例中的核心问题是我正在使用的xpath定位器,如果你想点击具有子div的元素,你需要点击元素的特定子div

<div class="ui-helper-hidden-accessible">
  <input id="addressUpdate:firmflg_input" name="addressUpdate:firmflg_input" autocomplete="off" aria-labelledby="addressUpdate:j_idt159" aria-checked="false" type="checkbox">
</div>
<div class="ui-chkbox-box ui-widget ui-corner-all ui-state-default"><span class="ui-chkbox-icon ui-icon ui-icon-blank ui-c"></span>
</div>

如果您对上面的代码snipet使用此xpath //div[@id='addressUpdate:firmflg'],如果您在phantomjs上运行它将无法单击该复选框,但它可以在其他浏览器中使用。  相反,如果你选择//div[@id='addressUpdate:firmflg']/div[2],这将适用于所有浏览器,包括phantomjs。