无头Selenium浏览器无法点击按钮

时间:2015-07-22 23:09:49

标签: jquery selenium headless-browser

我试图使用无头PhantomJSDriver()和click()命令单击此页面上的按钮,但它会挂起大约半分钟,然后声称无法找到该元素。如何正确识别按钮并模拟单击

我的代码段

driver.findElement(By.xpath("//input[@class='btn btn-primary btn-xs' and @type='button']"))
.click();

错误消息:

[ERROR - 2015-07-22T23:01:51.589Z] WebElementLocator -
_handleLocateCommand - Element(s) NOT Found: GAVE UP. Search Stop Time: 1437606111543

经过检查的元素:

<td ng-show="hit.HITStatus == 'Unassigned'" class="col-sm-1">
    <a href="www.theurl.com">
        <button type="button" class="btn btn-primary btn-xs">What the button says</button>
    </a>
</td>

1 个答案:

答案 0 :(得分:-1)

看......代码

class="btn btn-primary btn-xs"

表示此元素不分配给类&#34; btn btn-primary btn-xs&#34;,表示此元素分配给3个不同的类:&#34; btn&#34;,& #34; BTN-主&#34; &#34; BTN-XS&#34;

因此,这意味着您无法通过此xpath找到此元素:"//input[@class='btn btn-primary btn-xs' and @type='button']"  因为没有这样的类存在=) 您需要更正确地更改此xpath:

".//input[@class='btn-xs' and @type='button']"

并且在这种情况下它将找不到正确的按钮(它会找到,但我认为不正确)。 您需要构建更好的xpath,其中包含一些父元素....