硒网络驱动程序查找元素

时间:2016-02-23 20:22:40

标签: java selenium selenium-webdriver

function recursivePrinter($data, $nested=""){
    foreach($data as $k=>$v){
        if(is_array($v)){ recursivePrinter($v, $k); }
        else echo "$nested.$k - $v";
    }
}
recursivePrinter(json_decode($response, true));

我有两个按钮的按钮类名。如何找到第一个按钮并单击它。唯一不同的是我试过的跨度文本,但它没有成功。

<div class="ui-dialog-buttonset">
<button class="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only ui-state-hover" type="button" role="button" aria-disabled="false">
<span>
<br/>
   For use to protect against or prevent actual or potential fraud, unauthorized transactions,claims or other liability.
</span>
<br/>
<br/>
<button class="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only" type="button" role="button" aria-disabled="false">
</div>
<span align="center">     Selection of this option will automatically log you out of the system.</span>
</div>
</div>

工作

3 个答案:

答案 0 :(得分:0)

第一个按钮中有一个名为 ui-state-hover 的类,它不在按钮2中。所以你可以试试这个xpath:

driver.findElement(By.xpath("//button[contains(@class,'ui-state-hover')]")).click();

答案 1 :(得分:0)

你的发现是div的className,找到按钮列表给出按钮的className即ui按钮,或者你可以通过tagName找到按钮

List<WebElement> buttons=driver.findElements(By.className("ui-button")); buttons.get(0).click();

答案 2 :(得分:0)

尝试使用以下代码直接点击第一个按钮..

确保使用正确的类名“上面代码中的类名称错误”

wd.findElement(By.xpath("//div[@class='ui-dialog-buttonset']/button[1]"))

如果它不起作用,请尝试下面的代码

List<WebElement> buttons=wd.findElements(By.xpath("//div[@class='ui-dialog-buttonset']")); 
buttons.get(0).click();