SeleniumWebDriver标识按钮并使用Java单击它

SeleniumWebDriver标识按钮并使用Java单击它,java,selenium,webdriver,Java,Selenium,Webdriver,目前,我正在尝试用selenium和java自动填充一个相当大的Web表单。我正在使用firefox网络驱动程序。我已经安装了firebug和xpath检查器(在firefox上) 我的问题是登录到网站后单击按钮。登录部分没有问题。它是一个用户名/密码并提交操作 我尝试了各种FindElement方法,我认为应该是Xpath。我只是不知道如何识别按钮,因为它没有name属性 xpath检查器:id('sectiondiv_81')/x:input 如果这是中的唯一按钮,您可以通过XPath

目前,我正在尝试用selenium和java自动填充一个相当大的Web表单。我正在使用firefox网络驱动程序。我已经安装了firebug和xpath检查器(在firefox上)

我的问题是登录到网站后单击按钮。登录部分没有问题。它是一个用户名/密码并提交操作

我尝试了各种FindElement方法,我认为应该是Xpath。我只是不知道如何识别按钮,因为它没有name属性

xpath检查器:id('sectiondiv_81')/x:input




如果这是中的唯一按钮,您可以通过XPath找到它,如:

("//div[contains(@id, 'sectiondiv_81')]/input[contains(@class, 'Button')]")


我们可以查看完整的网站进行分析吗

我建议您使用Firebug和Firepath检查XPath,如下所示:

//div[contains(@id, 'sectiondiv_81')]/input[contains(@class, 'Button')]
您将能够检查网站中符合Xpath的“节”或“节”


此外,您还可以使用Firebug获取XPath,在FirePath中右键单击->Inspect

如果可能,您应该避免使用数字、索引,因为这会使XPath查询无法灵活地进行可能的ui更改。 最好使用任何元素属性,这会为您提供唯一的结果

//input[@type='button'][contains(@value, 'Apply')]
元素是具有ID的
元素的同级元素,因此请尝试使用XPath下面的同级命令,如下所示:

WebElement myButton = driver.findElement(By.xpath("//div[@id='sectiondiv_81']/following-sibling::input"));
myButton.click();

这来自W3C。

为您的回复干杯。我得到了这个错误:线程“main”org.openqa.selenium.NoSuchElementException中的异常:无法定位元素:{“方法”:“xpath”,“选择器”:”//div[contains(@id,'sectiondiv_81')]/input[contains(@class,'Button')]}我使用的代码:driver.findElement(By.xpath(“//div[contains(@id,'sectiondiv_81'))]]]/input[contains(@class,'Button')))))))))))))。点击();这可能是因为多个元素具有相同的Xpath。尝试一下价值搜索方法,我已经更新了我的答案。。
WebElement myButton = driver.findElement(By.xpath("//div[@id='sectiondiv_81']/following-sibling::input"));
myButton.click();