你好,我正在学习 Selenium ,我遇到了第一个问题。我搜索了很长时间并测试了很多解决方案,但没有一个适合我。
这就是我想要单击的按钮的外观(我想单击导航栏中的“事件”按钮)
<div id="navbar-items" class="collapse navbar-collapse">
<ul class="nav navbar-nav">
<li><a href="#about">About</a></li>
<li><a href="#events">Events</a></li>
<li><a href="#venues">Venues</a></li>
<li><a href="#bookings">Bookings</a></li>
<li><a href="#monitor">Monitor</a></li>
<li><a href="admin">Administration</a></li>
</ul>
</div>
这是我的java代码:
public class SeleniumTest {
@Test
public void startWebDriver() throws InterruptedException{
WebDriver driver = new FirefoxDriver();
driver.navigate().to("http://localhost:8080/ticket-monster/");
Assert.assertTrue("title should start differently",
driver.getTitle().startsWith("Ticket Monster"));
Thread.sleep(7000);
driver.findElement(By.xpath("//div[@id='navbar-items'][2]")).click();
//*[@id="navbar-items"]/ul/li[2]/a
// I also was trying this and nothing clicked events button
//driver.findElement(By.xpath("(//span[@class='nav navbar-nav'])2]")).click();
//driver.findElement(By.cssSelector("ul > li:nth-child(2)")).click();
}
}
这是我正在练习的网站,可能会有所帮助。 http://ticketmonster-jdf.rhcloud.com/
我将非常感谢每一个帮助。
最佳答案
尝试下面的代码并告诉我。
WebDriver driver = new FirefoxDriver();
driver.manage().window().maximize();
driver.get("example.com");
WebDriverWait wait = new WebDriverWait(driver, 10);
wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath(".//*[@id='navbar-items']/ul/li[2]/a")));
driver.findElement(By.xpath(".//*[@id='navbar-items']/ul/li[2]/a")).click();
而Xpath是最慢的,所以当我们没有任何选择的时候就使用xpath。幸运的是,xpath 正在获取 id,所以这里一切都很好。
关于java - Selenium 找不到项目列表输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37693073/