Selenium:phpTravels网页,无法获取电子邮件和密码的值

时间:2017-06-26 15:06:11

标签: java selenium xpath automation

我正在尝试获取以下网站的首页前端的电子邮件和密码。 http://phptravels.com/demo/

我需要获得的价值。
user@phptravels.com
demouser

CODE: driver.get(" http://phptravels.com/demo/&#34);

    WebElement user = driver.findElement(By.xpath("/html/body/section[2]/div/div/div[1]/div/div/div[2]/div[2]/div/div[3]/div[2]/div/strong[1]"));
    System.out.println(user.getText());

它只打印"电子邮件",但我只想要电子邮件和密码的值,即user@phptravels.com和" demouser"。

我知道我没有写出正确的xpath,但我不知道如何为这个写道。

3 个答案:

答案 0 :(得分:0)

您正尝试从页面上的以下div标签内选择文本。

  

&lt; div class =&#34; row&#34;&gt;                                                   &LT;强&GT;电子邮件与LT; /强&GT; user@phptravels.com<峰; br&GT;                                                   &LT;强&GT;密码&LT; /强&GT; demouser                                               &LT; / DIV&GT;

例如,您可以使用以下代码获取节点文本并拆分字符串以获取文本中的单词数组。

    System.setProperty("webdriver.gecko.driver", "C:\\Utility\\BrowserDrivers\\geckodriver.exe");
    WebDriver driver=new FirefoxDriver();
    driver.get("http://phptravels.com/demo/");
    String my_text = driver.findElement(By.xpath("html/body/section[2]/div/div/div[1]/div/div/div[2]/div[2]/div/div[3]/div[2]/div")).getText();
    String[] words = my_text.split(" "); 
    String email= words[1];
    String password = words[3];
    System.out.println(my_text);

所以你需要使用xpath到那个父div,然后使用字符串操作技术来提取值

请参阅:Selenium - Get a text node using xpath and use it as a string in Java

并且:Getting text from a node

有关Java字符串操作的参考,请参阅:http://toolsqa.com/java/basic-java-programming/string-class/

答案 1 :(得分:0)

以下是您的问题的答案:

要在控制台上获取以下文本:

  

电邮至user@phptravels.com

     

密码迁移器

您可以使用以下代码块:

    System.setProperty("webdriver.gecko.driver", "C:\\Utility\\BrowserDrivers\\geckodriver.exe");
    WebDriver driver=new FirefoxDriver();
    driver.get("http://phptravels.com/demo/");
    String my_text = driver.findElement(By.xpath("html/body/section[2]/div/div/div[1]/div/div/div[2]/div[2]/div/div[3]/div[2]/div[starts-with(normalize-space(),'Email')]")).getText();
    System.out.println(my_text);

如果这回答你的问题,请告诉我。

答案 2 :(得分:0)

以下是您问题的答案。

输出将是:

user@phptravels.com

demouser

<强>代码:

    driver.get("http://phptravels.com/demo/");
    String my_text=driver.findElement(By.xpath("//div[3]/div[2]/div")).getText();
    System.out.println(my_text.substring(my_text.indexOf("Email")+5,my_text.indexOf("Password")));
 System.out.println(my_text.substring(my_text.indexOf("Password")+8));