单击<;李>;列表项未使用Selenium Java
以下列表表示页面导航按钮:单击<;李>;列表项未使用Selenium Java,java,list,selenium,Java,List,Selenium,以下列表表示页面导航按钮: <div class="list"> <ul class="pageNav"> <li class="paginate_button "> <a href="#" controls="Tables_Table_0" data-idx="0" tabindex="0">1</a></li> <li class="paginate_button "> <a hr
<div class="list">
<ul class="pageNav">
<li class="paginate_button ">
<a href="#" controls="Tables_Table_0" data-idx="0" tabindex="0">1</a></li>
<li class="paginate_button ">
<a href="#" controls="Tables_Table_0" data-idx="1" tabindex="0">2</a></li>
<li class="paginate_button ">
<a href="#" controls="Tables_Table_0" data-idx="2" tabindex="0">3</a></li>
</ul>
</div>
-
-
-
例如,要转到第二页,我将使用以下Selenium Java代码:
//after setting up webdriver
List<WebElement> li = driver.findElements(By.className("pageNav"));
System.out.println(li.get(2).getText());
li.get(2).click();
//设置webdriver后
List li=driver.findElements(按.className(“pageNav”);
System.out.println(li.get(2.getText());
li.get(2).单击();
它正确地打印了文本“2”,但没有正确地点击或导航,就像我在实际的网站上手动操作一样。我还尝试将链接替换为实际链接,如:
但还是没有运气。我做错了什么
提前谢谢你 试试下面的代码
//getting all the anchor tag elements and storing in a list
List<WebElement> links = driver.findElements(By.xpath("//ul[@class='pageNav']//li[starts-with(@class,'paginate_button')]/a"));
System.out.println(links.size());
//performs click on second links
links.get(1).click();
//获取所有锚标记元素并存储在列表中
List links=driver.findElements(By.xpath(//ul[@class='pageNav']//li[以(@class,'paginate_按钮')]/a开头);
System.out.println(links.size());
//单击第二个链接
links.get(1).单击();
试试下面的代码
在您尝试过的代码中,我注意到您正在使用class
locator来单击链接
元素。但是您的
标记不包含链接。在
标签内,有标签,每个标签包含单独的
标签
因此,这里应该使用xpath
或cssSelector
locator
方法1)使用xpath定位器
List<WebElement> links = driver.findElements(By.xpath("//ul[@class='pageNav']/li/a"));
System.out.println(links.size());
links.get(1).click(); //indexing start from 0, if you want to click on second link then pass indexing as 1.
List<WebElement> links = driver.findElements(By.cssSelector("ul.pageNav>li>a"));
System.out.println(links.size());
links.get(1).click(); //indexing start from 0, if you want to click on second link then pass indexing as 1.
如果您面临任何无法直接处理的异常困难,则可以首先尝试使用actions类移动到该元素,然后按如下所示单击它:
WebElement we = driver.findElement(By.cssSelector("div.list > ul.pageNav li:nth-child(2));
Actions action = new Actions(driver);
action.moveToElement(we).click().build().perform();
您正在单击“”元素,但应该单击它的“”子元素。