我希望使用带有Selenuim的PhantomJS在Java中选择一个简单的复选框。
我使用此代码使用Firefox进行了此操作
driver.findElement(By.xpath("//label[@for='terms-checkbox']")).click();
但是当我改为PhantomJS驱动程序时,我收到了一个错误:隐形元素......
答案 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。