Selenium和Javascript,无法找到firstchild元素

时间:2016-11-02 11:49:45

标签: javascript node.js selenium cucumber

我是Javascript和Selenium的新手,所以请耐心等待我!

我如何找到元素'接受'然后点击它?

enter image description here

我尝试过几种组合:

var buttons =[];
buttons = driver.findElement(By.className("eula-button")) (I cannot call buttons.length with this method to loop through elements)

driver.findElement(By.xpath(".//button[contains(text(),'Accept')]")).click();

感谢您的帮助!

2 个答案:

答案 0 :(得分:0)

尝试使用像这样的xpath -

var button = driver.findElement(By.xpath("//button[@class='eula-button']"));

答案 1 :(得分:0)

您使用的xpath选择器可以正常工作。

driver.findElement(By.xpath(".//button[contains(text(),'Accept')]")).click();

或者你可以使用带有CSS的索引,假设“接受”按钮总是出现在“拒绝”之前。

driver.findElement(By.cssSelector(".eula-button-container button.eula-button:nth-of-type(1)")

考虑到你的第一个使用XPath的选择器不起作用,我猜这些按钮都在iframe中,正如@Grasshopper在评论中指出的那样。

在与按钮交互之前,您必须切换到框架,然后执行findElement