2017-06-13 40 views
0

我知道这个问题在论坛中有一些答案。 但他们都没有为我的问题工作。我想点击一个按钮:没有ID,名称或值的HtmlUnit按钮[Xpath不工作]

这里是边码(很容易侧测试登录):

<head/> 
<body> 
    <form action="/login_check" method="post" class="login-form"> 

      <label for="username">E-Mail</label> 
       <input type="text" id="username" 
       class="form-control" placeholder="E-Mail" name="_username" 
       value="" required style="margin-bottom: 10px;"/> 

      <label for="password">Passwort</label> 
       <input type="password" id="password" 
       class="form-control" placeholder="Passwort" name="_password" 
       required /><br> 

     <button class="btn btn-default btn-block btn-form-submit" 
       type="submit" data-loading-text="<i class='fa fa-spinner fa-spin'></i>"> 
      Anmelden 
     </button> 

    </form> 
</body> 

铬F12“复制XPath”

getFirstByXPath("/html/body/form/button"); 

任何想法如何点击按钮?由于

这里是我的代码的短扣:

String pageText1 = page1.asText(); 
System.out.println(pageText1); 

HtmlButton htmlElement = page1.getFirstByXPath("//*[contains(text(),'Anmelden')]"); 
htmlElement.click(); 

HtmlButton htmlElement1 = page1.getFirstByXPath("/html/body/form/button"); 
htmlElement1.click(); 

Thread.sleep(2000); 
String pageText2 = page1.asText(); 
System.out.println(pageText2); 

page1.asText1()IST一样page1.asText2

[email protected]报名

[email protected] Anmelden

+0

你想做什么? – Guy

+0

你不能给它一个ID? –

+1

你需要确保首先'page.asXml()'包含该按钮,否则请张贴你的完整案例 –

回答

0

你可以简单地比赛要求button的文本内容:

//button[.="Anmelden"] 

type属性值:

//button[@type="submit"] 

如果它不工作,你可能会增加更多的细节,你为什么的XPath不工作票,因为它不是完全清除

+0

对于第一篇文章感到抱歉。现在你有更多的信息。感谢您的帮助 – BiFi

0

对于您的情况,您可以使用以下xpath:

driver.findElement(By.xpath("//*[contains(text(),'Anmelden')]")).click(); 

希望它能帮助你。

+0

Hey RNS,在我的程序中添加了“HtmlUnitDriver”并尝试了您的想法。但我得到一个错误: org.openqa.selenium.NoSuchElementException:无法找到节点使用// * [contains(text(),'Anmelden')] – BiFi

+0

或类似的东西: xpath表达式'// * [contains(button [@ type ='submit')]''无法评估 – BiFi

相关问题