点击提交按钮不在selenium webdriver中工作

时间:2015-08-29 08:59:36

标签: selenium xpath selenium-webdriver webdriver

我尝试点击注册表单中的创建帐户按钮。 这是按钮在html页面中的位置:

<div id="submitContainer"><button type="submit" class="large"><span><strong> Create Account </strong></span></button></div>

这是按钮xpath:

//*[@id="submitContainer"]/button/span/strong

问题是按钮没有id,他位于div内。 我尝试使用id,xpath,css,name,但所有这些都不起作用:

driver.findElement(By.id("submitContainer")).click();

driver.findElement(By.xpath("//*[@id='submitContainer']/button/span/strong")).click();

driver.findElement(By.tagName("Create Account")).click();

driver.findElement(By.className("large")).click();

谢谢!

5 个答案:

答案 0 :(得分:3)

在您的示例中,除了最后一个,您没有定位按钮。现在你的最后一个例子,实际应该找到button-element:

driver.findElement(By.className("large")).click();

您能否发布您收到的错误消息?

页面上是否有多个元素,className为“large”?

答案 1 :(得分:1)

确保按钮位于视图窗口中,如果是,则尝试单击它。尝试等待元素加载。将您的元素加载到DOM中可能存在问题 -

driver.wait.until(ExpectedConditions.presenceOfElementLocated(By.xpath("//button[@type='submit']"))).click();

希望这有帮助。

答案 2 :(得分:0)

如果要使用xpath,则语法正确 //按钮[@类型= '提交']

答案 3 :(得分:0)

请使用以下一行:

的Thread.sleep(3000);

一旦我使用了这个,我得到了结果。从一段时间以来,我们需要为站点提供一些休眠时间以完全加载以拉出Xpath。

答案 4 :(得分:-1)

您可以使用linkText

driver.findElement(By.linkText("Create Account")).click();

希望它对你有用。