如何滚动网页直到该Web元素出现并执行所需的操作

时间:2016-10-24 11:35:37

标签: javascript java selenium selenium-webdriver

如果我们搜索任何输入,我会得到多个表数据。 我们有"显示为文本链接"出现在不同的表格行中我们需要点击。

我已经编写了一个代码,它在一台机器上的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 个答案:

答案 0 :(得分:1)

试试这个

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

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

Thread.sleep(500);

答案 1 :(得分:-1)

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

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