我有一个可以获取内部文本的链接,但我无法单击它
driver.switchTo().activeElement();
String sTemp = selenium.getText("TabBar:LogoutTabBarLink");
以上工作正常,
sTemp = "Log Out";
selenium.click("TabBar:LogoutTabBarLink");
以上失败:Element is no longer valid
我有一个可以获取内部文本的链接,但我无法单击它
driver.switchTo().activeElement();
String sTemp = selenium.getText("TabBar:LogoutTabBarLink");
以上工作正常,
sTemp = "Log Out";
selenium.click("TabBar:LogoutTabBarLink");
以上失败:Element is no longer valid
你真的很想使用 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 分钟入门指南
尝试只使用 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 查找的更多有用信息,请参阅我对这个问题的回答。