2017-01-21 74 views
-1

enter image description here以下是页面的HTML,如何获取Xpath或者是否有其他方法来自动化使用java?实际上,我们不禁要点击这个“继续”按钮。如何在硒webdriver中找到xpath

<regform-button> 
<button ng-disabled="activityIndicator" ng-click="validate()" type="button"> 
<div template="api-loader" ng-http-loader=""> 
<div class="http-loader__wrapper ng-hide" ng-show="showLoader" ng-include="template"> 
<span class="api-loader"></span> 
</div> 
</div> 
<ng-transclude> 
</button> 
</regform-button> 

回答

1
driver.findElement(By.xpath("//regform-button/button")).click(); 
+0

力的工作。在同一页面中保留.Tried:driver.findElement(By.xpath(“// regform-b​​utton/button”))。click(); – sandy

+0

你确定这是'继续'按钮吗? – eLRuLL

+0

是的。 In fact试图在以下链接自动注册表单。 https://uk.match.com/unlogged/landing/2016/06/02/hpv-belowthefold-3steps-geo-psc-bowling?klid=6740 – sandy

1

如果您使用的是谷歌浏览器,用鼠标右键单击该按钮,然后选择检查在弹出。该html将在开发人员工具框架中打开。右键单击开发人员工具框架中的元素,将鼠标悬停在副本上,选择copy xpath。

以下是URL上表单的XPath。

// * [@ id =“main-frame”]/div [1]/div [2]/div/div [1]/div [1]/form/regform-steps/ng-transclude/regform步骤[1]/NG-形式/ NG-transclude/regform键/按钮

WebDriver driver = new ChromeDriver(); 
    driver.get("https://uk.match.com/unlogged/landing/2016/06/02/hpv-belowthefold-3steps-geo-psc-bowling?klid=6740"); 
    //fill in fields 
    WebElement element = driver.findElement(By.xpath("//*[@id=\"main-frame\"]/div[1]/div[2]/div/div[1]/div[1]/form/regform-steps/ng-transclude/regform-step[1]/ng-form/ng-transclude/regform-button/button")); 
    element.click(); 
+0

它力气还是我。它保持在同一页面上。它应该转到下一页的下一步。 – sandy

+0

您是手工填写还是填写代码?我用一个debuger穿过代码并手工填写字段。点击的网页是不是在任何地方?该页面是否返回验证错误? – ProgrammersBlock

0

一旦从之前出现的下拉菜单中选择所需的值继续按钮,就可以点击使用下面的语句继续按钮:

driver.findElement(By.xpath("//span[text()='Continue']")).click(); 
+0

这是为铬或FF浏览器? – sandy

+0

它应该适用于Chrome和Firefox。我用Firefox测试过它,它对我很有用。 – Mahipal

1

尝试打开控制台谷歌Chrome浏览器并输入以下内容: document.evaluate( “// regform按钮/按键”,文档,空,XPathResult.FIRST_ORDERED_NODE_TYPE,NULL).singleNodeValue.click()

它的工作原理...这是你已经指定了必填字段。另外请确保在指定所需字段后等待一段时间(确定2秒),因为在设置必填字段后可能会有额外负载。

编辑:代码是javascript..I只是采取了以前的答案给出的xpath,并使用它通过js来定位元素。我在说“// regform-b​​utton/button”应该可以工作。

0

下面的xpath对我有用。但我不知道,为什么每个不同的浏览器都有所不同。

对于Firefox:

`driver.findElement(By.xpath("//*[@id='main-frame']/div[1]/div[2]/div/div[1]/div[1]/form/regform-steps/ng-transclude/regform-step[1]/ng-form/ng-transclude/regform-button/button")).click()`; 

镀铬:driver.findElement(By.xpath("//regform-button/button")).click();