我正在尝试在网站中导航:http://startupnationbook.com/startup-map 我想点击Startups的链接,但是我无法找到该元素。
我试过了:
elem = driver.findElement(By.xpath("//a[contains(text(),'Startups')]"));
和
elem = driver.findElement(By.xpath("//*[@id='listtoggle' and contains(text(),'Startups')]"));
在这两种情况下,我得到:“无法找到元素”错误
我的表达式有什么问题,如何找到要执行点击的元素。
答案 0 :(得分:2)
地图位于iframe中,您可能不会告诉Selenium在那里查看。我也会寻找span标签,因为id listtoggle被多次使用(设计不佳,使它变得毫无价值),只需查看包含Startups。
// Also should probably use a wait here, in case the page takes too long to load
chromeDriver.switchTo().frame(chromeDriver.findElement(By.tagName("iframe")));
WebElement elem = chromeDriver.findElement(By.xpath("//span[contains(text(),'Startups')]"));
答案 1 :(得分:1)
你可以这样做:
WebDriver driver = new FirefoxDriver();
driver.get("http://startupnationbook.com/");
driver.findElement(By.xpath(".//*[@id='main-nav']/li[5]/a")).click();
希望这会奏效。我已经测试了。