1

我有一个可以获取内部文本的链接,但我无法单击它

driver.switchTo().activeElement();
String sTemp = selenium.getText("TabBar:LogoutTabBarLink");

以上工作正常,

sTemp = "Log Out";
selenium.click("TabBar:LogoutTabBarLink");

以上失败:Element is no longer valid

4

2 回答 2

2

你真的很想使用 Selenium 2(又名 Web 驱动程序),它更快更可靠。所以忘记 Selenium 1,除非你有充分的理由使用它。您的代码应如下所示

WebDriver driver = new FirefoxDriver(); //or any other, like ChromeDriver or OperaDriver
WebElement element = driver.findElement(By.id("idOfYourElement");
element.click();
String text = element.getText();

另请参阅5 分钟入门指南

于 2013-09-06T20:17:48.020 回答
0

尝试只使用 WebDriver,并通过 id 或 xPath 获取元素(如果没有 id)。

您可以为 xpath 编写这样的代码:

driver.switchTo().activeElement();
WebElement element = driver.findElement(By.xpath(/*Insert xpath Here */);
element.click();

您可以使用 Firefox 中的 Firebug 或 Chrome 中的 Chrome 调试器来查找元素的 xpath。

如果它有一个 id,你可以类似地通过 id 找到元素(它更快,因此更可取):

WebElement element = driver.getElement(By.id(/*Insert id Here */);

有关按 id 和/或 xpath 查找的更多有用信息,请参阅我对这个问题的回答。

于 2013-09-06T20:18:14.740 回答