如何在java selenium中获取下一个元素的值

时间:2017-09-07 13:43:22

标签: java selenium selenium-webdriver selenium-firefoxdriver

我总共有3个页面,所有三个页面都包含电子邮件ID,我想要使用java selenium的电子邮件ID。但是所有三个页面都包含不同格式的电子邮件字段,我希望在一个单独的代码中,因为我使用for循环来获取该电子邮件ID。

第1页:

<p>Test1</p>
<p>abc@abc.com</p>

第2页:

<p>
   <br>Contact:<br>  
   Test2
</p>
<p>
   <br>Email:<br>  
   xyz@xyz.com
</p>

第3页:

<p>
   <br>Contact:<br>  
   Test3
</p>
<p>
   <br>Email:<br>  
   pqr@pqr.com
</p>

那么我将如何在一个代码中获得此电子邮件ID。

我试过

email = driver.findElement(By.xpath("//*[contains(text(), 'Email:')]")).getText();

但我在该变量中收到了“电子邮件”,但没有得到它的价值。

2 个答案:

答案 0 :(得分:2)

这应该包含包含电子邮件的P标签的全部内容

WebElement emailElement = driver.findElement(By.xpath("//p[contains(.,'@')]"));
String email = emailElement.getText().toString();

在将文本作为字符串获取后,您可以拆分或使用stringbuilder来构建实际的电子邮件。

希望这会有所帮助

答案 1 :(得分:0)

试试这段代码:

email = driver.findElement(By.xpath("//*[contains(text(), 'Email:')]/..")).getText();