【问题标题】:How to scroll web page till that web element appear and perform required actions如何滚动网页直到该网页元素出现并执行所需的操作
【发布时间】:2016-10-24 11:35:36
【问题描述】:

我有一个场景,如果我们搜索任何输入,我们将获得多个表数据。 我们在需要点击的不同表格行中有“显示为文本链接”。

我编写了一个代码,它在一台机器上的 IE 中运行良好,由于显示器大小不同,相同的脚本在不同的机器上无法运行!

       String rawTextXpath = "//table[@id='view518-table']/tbody/tr[1]/td[4]/div[1]/a[text()='Show as raw text']";
            boolean exists = false;
            exists = driver.findElements(By.xpath(rawTextXpath)).size() != 0;

            if (exists == false) {
                system.out.println("No Results found!");
            }
            int i = 1;
            while (exists == true) { 
                try {

                    driver.findElement(By.xpath(rawTextXpath)).click();
                    Thread.sleep(3000);



                }       

                catch (Exception e) {

                }   

                String expandXpath = "//table[@id='view518-table']/tbody/tr[" + i + "]/td[1]/a";
                driver.findElement(By.xpath(expandXpath)).click();

                JavascriptExecutor jse = (JavascriptExecutor) driver;
                jse.executeScript("window.scrollBy(0,150)", "");



                rawTextXpath = "//table[@id='view518-table']/tbody/tr[" + (i + 1)
                        + "]/td[4]/div[1]/a[text()='Show as raw text']";

                exists = driver.findElements(By.xpath(rawTextXpath)).size() != 0;

                i++; 

            }

注意:在上面的脚本中,我将网页滚动 150,它可以在一台机器上的 IE 相同版本中正常工作,而在另一台浏览器中不能使用相同的浏览器

动作是 1. 在每个表格行中点击显示为文本链接,然后点击展开图标

以上代码在同一IE11浏览器的不同系统中无法正常工作,因为显示器大小不同!

【问题讨论】:

  • 您遇到了什么错误?
  • 它可以点击不同表格行的初始 2 个链接,但不是第 3 个链接,而是点击页面中的其他位置

标签: javascript java selenium selenium-webdriver


【解决方案1】:

试试这个

WebElement element = driver.findElement(By.id("id_of_element"));

((JavascriptExecutor) driver).executeScript("arguments[0].scrollIntoView(true);", element);

Thread.sleep(500);

【讨论】:

    【解决方案2】:

    您需要减去窗口的高度,检查animate jquery 库以在向下滚动时调用另一个函数。

    $("html, body").animate({ scrollTop: $(document).height()-$(window).height() });
    

    【讨论】:

      猜你喜欢
      • 2018-11-11
      • 2013-05-02
      • 1970-01-01
      • 2020-07-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多