【问题标题】:Java selenium click element not workingJava selenium 点击元素不起作用
【发布时间】:2015-10-07 20:27:08
【问题描述】:

我想点击页面中的load More 链接。我的代码如下。

pageUrl="http://www.foundpix.com/category/actor/bollywood-actor/"

WebDriver driver = new FirefoxDriver();

driver.get(pageUrl);

driver.manage().window().maximize();

JavascriptExecutor jse = (JavascriptExecutor) driver;

jse.executeScript("window.scrollBy(0,2500)", "");

WebDriverWait wait = new WebDriverWait(driver, 60);

wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("json_click_handler")));

driver.findElement(By.id("json_click_handler")).click();

我怎样才能让它点击链接。

【问题讨论】:

    标签: java selenium


    【解决方案1】:

    您可以使用下面的 xpath 来两次单击 Load More 按钮:-

    driver.findElement(By.xpath("//*[@id='blocks-left']/div/div[3]/div[contains(.,'Load More')]")).click();
    

    【讨论】:

      【解决方案2】:

      这个按钮点击后会改变位置,可以点击两次,所以:

      在第一次点击之前使用

      driver.findElement(By.xpath("//*[@id="blocks-left"]/div/div[3]/div")).click();
      

      第一次点击后,就可以使用了

      driver.findElement(By.xpath("//*[@id="blocks-left"]/div/div[3]/div[2]")).click();
      

      【讨论】:

        【解决方案3】:

        也许从不同的角度来看。您是否真的需要单击链接,或者您是否有一些在单击链接时调用的 Javascript 函数(如 window.loadMore)。可以直接调用函数吗? Selenium 有点烦人,因为您只能单击可见元素(我并不是说它必须在视口中 - 它不能具有像 display:none; 这样的样式)。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-06-13
          • 1970-01-01
          • 1970-01-01
          • 2019-04-28
          • 2018-03-14
          • 1970-01-01
          相关资源
          最近更新 更多