Java 无法使用HtmlUnitDriver单击web元素 转到: 向下滚动,直到到达客户评论表 在桌子下面有一个分页选项卡,看起来像这样
<1234567810> 单击Java 无法使用HtmlUnitDriver单击web元素 转到: 向下滚动,直到到达客户评论表 在桌子下面有一个分页选项卡,看起来像这样,java,selenium-webdriver,htmlunit,Java,Selenium Webdriver,Htmlunit,单击> 这意味着要进入表格的下一页 还有我使用的代码 WebDriver driver = new HtmlUnitDriver(); driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS); driver.get("http://list.qoo10.sg/item/REAL-JAPAN-VERSION-WORTH-120-24K/412131433"); WebElement findElement1 =
>
这意味着要进入表格的下一页
还有我使用的代码
WebDriver driver = new HtmlUnitDriver();
driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);
driver.get("http://list.qoo10.sg/item/REAL-JAPAN-VERSION-WORTH-120-24K/412131433");
WebElement findElement1 =
driver.findElement(By.cssSelector("td#opinion_point_1.rating"));
String htmlTableText = findElement1.getText();
System.out.println(htmlTableText);
TimeUnit.SECONDS.sleep(10);
//next click
WebElement click_button =
driver.findElement(By.cssSelector("div#paging.pagingInfo div.center a.next"));
boolean click2=click_button.getAttribute("href").contains("javascript:opinionList(2)");
click_button.click();
TimeUnit.SECONDS.sleep(10);
WebElement findElement2 =
driver.findElement(By.cssSelector("td#opinion_point_1.rating"));
String htmlTableText2 = findElement2.getText();
System.out.println(htmlTableText2);
driver.close();
driver.quit();
我在单击之前和之后打印元素,但它不会更改。这意味着不执行单击。有什么建议吗
我尝试了以下修复,但得到了相同的结果
click_button.sendKeys(Keys.ENTER);
及
及
首先,您需要单击“下一页”,使用以下xpath,此xpath正好指向
图标:
//Wait for the next button
WebDriverWait wait = new WebDriverWait(driver, 10);
click_button = wait.until(ExpectedConditions.visibilityOfElementLocated(By.Xpath("//div[@id='paging']//a[@class='next']/span[text()='next']")));
//Click next button
click_button.click();
然后,单击“尝试等待”后,将突出显示[2]
(即第二个)页面图标。此网站将所选页面的类设置为“当前”:
wait.until(ExpectedConditions.visibilityOfElementLocated(By.Xpath("//div[@id='paging']//a[@class='current'][text()='2']")));
是否仅为htmlunit错误?代码运行时没有错误,但单击没有响应是否仅为htmlunit结果?你试过其他驱动程序吗?我试过FireFoxDriver()&我在线程“main”java.lang.NoSuchMethodError:com.google.common.collect.Multimaps.transformValues(Lcom/google/common/collect/ListMultimap;Lcom/google/common/base/Function;)Lcom/google/common/collect/ListMultimap;这可能不是最好的建议方法,但您是否尝试过使用javascript单击按钮?类似这样的
WebElement=driver.findElement(By.xpath(“您的xpath或CSS”);JavascriptExecutor executor=(JavascriptExecutor)驱动程序;executor.executeScript(“参数[0]。单击();”,元素)代码>
//Wait for the next button
WebDriverWait wait = new WebDriverWait(driver, 10);
click_button = wait.until(ExpectedConditions.visibilityOfElementLocated(By.Xpath("//div[@id='paging']//a[@class='next']/span[text()='next']")));
//Click next button
click_button.click();
wait.until(ExpectedConditions.visibilityOfElementLocated(By.Xpath("//div[@id='paging']//a[@class='current'][text()='2']")));