Selenium webdriver识别按钮并使用Java

时间:2015-08-20 09:18:38

标签: java selenium webdriver

目前我正在尝试使用selenium和java自动填充相当大的webform。即时通讯使用firefox webdriver。我安装了firebug和xpath检查器(在firefox上)。

我的问题是登录网站后点击按钮。登录部分没问题。它的用户名/密码并提交动作。

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

xpath checker:id(' sectiondiv_81')/ x:input



<div id="sectiondiv_81" class="ax-boxcontent" style="">
<input class="Button" type="button" onclick="window.location='/Apps/app_editopportunity.jsp?appid=103184&nextlevel=1&companyid=&opportunityid=0&opportunitytypeid=13997&defaultstatusid=12824&providertoken=Sml3L21uJDk!HkITNmAzGDUlHhd2GxoXH2JcU0JFal9AQVxWHwQIUxkbbFFfXhI~'" value="Apply for a scientific research project">
<br>
</div>
&#13;
&#13;
&#13;

它涉及有价值的按钮&#39;申请科研项目&#39;。

我非常感谢解决方案。

4 个答案:

答案 0 :(得分:0)

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

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

("//input[contains(@value, 'scientific research project')]")

答案 1 :(得分:0)

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

我建议您使用Firebug和Firepath来检查XPath:

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

您可以查看网站中符合您的X路径的“部分”或“部分”

您也可以使用Firebug获取XPath,右键单击 - &gt;检查FirePath

答案 2 :(得分:0)

如果可能,您应该避免使用数字,索引,因为它使xpath查询对于可能的ui更改不灵活。 最好使用任何元素属性,这会给你独特的结果。

//input[@type='button'][contains(@value, 'Apply')]

答案 3 :(得分:0)

<input>元素是具有ID的<div>元素的兄弟,因此请尝试使用XPath follow-sibling命令,如下所示:

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

这来自W3C XPath spec