Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用selenium从尚未加载的元素收集信息_Java_Selenium - Fatal编程技术网

Java 如何使用selenium从尚未加载的元素收集信息

Java 如何使用selenium从尚未加载的元素收集信息,java,selenium,Java,Selenium,您好,我是selenium的新手,我想收集所有具有特定span id的元素 问题:当selenium打开网页时,它(默认情况下)仅显示前三个div,每个div包含大约50行数据。我想从所有div中包含的跨度中获取信息(文本)。有没有办法从那些未加载的div中获取信息?如果没有,我如何通过控制滚动条加载这些div?您可以使用下面的代码向下滚动页面,但不加载就无法从div获取信息 WebDriver driver = = new FirefoxDriver(); JavascriptExecutor

您好,我是selenium的新手,我想收集所有具有特定span id的元素


问题:当selenium打开网页时,它(默认情况下)仅显示前三个div,每个div包含大约50行数据。我想从所有div中包含的跨度中获取信息(文本)。有没有办法从那些未加载的div中获取信息?如果没有,我如何通过控制滚动条加载这些div?

您可以使用下面的代码向下滚动页面,但不加载就无法从div获取信息

WebDriver driver = = new FirefoxDriver();
JavascriptExecutor jse = (JavascriptExecutor)driver;
jse.executeScript("window.scrollBy(0,300)", "");


你能把你的HTML代码和你的问题一起粘贴吗?如果可能,给我们链接,因为其他人无法想象你的情况。如果你不能给链接,那么给我们一些其他网站链接,有类似的功能,你想自动。代码是公司版权,所以我不允许粘贴它。但facebook也有类似的功能,它会在滚动页面上加载后续数据。非常感谢您的帮助。但只要我向下滚动到底部,上面的div就会卸载。有没有一种方法可以让我知道上三个div中的所有行何时都被遍历,然后可以加载下三个div,因为页面一次只加载三个div,正如您在问题中提到的,您的主要任务是获取所有div数据,这样您就可以保留滚动模块代码(由我提供)在一个函数中,并从@test函数调用它。每当新div加载时,您可以在一个数组中收集文本,并尝试加载新div,然后再次从新div获取文本。这样,您就可以收集所有div数据。
JavascriptExecutor js = (JavascriptExecutor)driver;
                    js.executeScript("window.scrollTo(0,Math.max(document.documentElement.scrollHeight," +
                    "document.body.scrollHeight,document.documentElement.clientHeight));");