目前我正在尝试使用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;
它涉及有价值的按钮&#39;申请科研项目&#39;。
我非常感谢解决方案。
答案 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。