试图返回类的文本值

时间:2017-07-14 11:38:50

标签: java selenium selenium-webdriver webdriver

我正在尝试返回文本值“我的帐户”,这也是一个链接。

我需要检查字符串以证明我已登录网站。

我已经尝试了所有常用方法(xpath,by css,by href)但没有成功..我显然做错了。

有人可以帮我解决这个问题吗?

希望html图像能够展示我想要实现的目标。 (点击代码显示)

这是我用来登录网站的代码,当我登录时,文本“我的帐户”显示为href。我想返回href文本以写入电子表格。

请参阅代码片段和我尝试返回href文本字符串的一些方法(我已经尝试了很多...但是现在删除了它们,因为没有工作)

另见结果代码。

    WebElement element_search1 = driver.findElement(By.xpath("//*[@id='login']"));
driver.findElement(By.xpath("//*[@id='login']")).click();

  WebDriverWait wait = new WebDriverWait(driver, 20);
  wait.until(ExpectedConditions.titleContains("Login - mysite.com"));;

    WebElement element_search2 = driver.findElement(By.xpath("//*[@id='subscriber_email']"));
    driver.findElement(By.xpath("//*[@id='subscriber_email']"));
    element_search2.clear();
    element_search2.sendKeys("email@email.com");
    element_search2.sendKeys(Keys.TAB);

// find and enter password
WebElement element_search3 = driver.findElement(By.xpath("//*[@id='subscriber_password']"));
driver.findElement(By.xpath("//*[@id='subscriber_password']"));
element_search3.clear();
element_search3.sendKeys("password");    
driver.findElement(By.name("commit")).click();

 System.out.println(driver.findElement(By.linkText("My account")).getAttribute("class"));
 System.out.println(driver.findElement(By.linkText("My account")).getText());

结果

Exception in thread "main" org.openqa.selenium.NoSuchElementException: no such element: Unable to locate element: {"method":"link text","selector":"My account"}

它失败了:System.out.println(driver.findElement(By.linkText("My account")).getAttribute("class"))

1 个答案:

答案 0 :(得分:0)

以下是您的问题的答案:

要检索类的文本值" user-info"即 My account ,您可以使用以下代码行:

String my_account = driver.findElement(By.xpath("//nav[@class='main-top-nav']//a[@class='user-info' and contains(@href,'/home/manage_account')]")).getAttribute("innerHTML");
System.out.println(my_account);

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