我尝试点击注册表单中的创建帐户按钮。 这是按钮在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();
谢谢!
答案 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();
希望它对你有用。