如何获取此元素的文本

时间:2015-03-02 20:08:28

标签: selenium selenium-webdriver webdriver

我如何获得 项目 - mar3已被授予另一位旅行者。 来自下面提供的html的文字?

我的剧本。

package garbage;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;

public class mailinator {
 static WebDriver driver;

    public static void main(String args[])
    {
        driver=new FirefoxDriver();
        driver.get("http://www.mailinator.com/inbox.jsp?to=679jcscqgtm1guuq09aef3mofu");
        driver.findElement(By.xpath("//*[normalize-space(text())='Item awarded']")).click();
        // driver.switchTo().frame("rendermail");
           System.out.println(driver.findElement(By.xpath("html/body/div[1]/div/div/table[1]/tbody/tr/td[2]/div/table/tbody/tr/td/p[3]")).getText().trim());


        }
}

而且,HTML

<p>
Item - 
<b>mar3</b>
 has been awarded to another traveler.
</p>

而且,图像here

1 个答案:

答案 0 :(得分:1)

我编辑了你的帖子。我的理解是你只想要项目授予文本。如果是这样 试试

//ul[@id="mailcontainer"]/li[1]/a/div[2]

我还认为,根据您的评论,内容位于iframe内。所以你必须使用

driver.switchTo().frame(driver.findElement(By.cssSelector("[name='rendermail']")));

String text = driver.findElement(By.cssSelector("p:nth-child(3)")).getText();

System.out.println(text);

刚刚测试过。上面的代码非常有效。 enter image description here enter image description here