Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.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_Multithreading_Selenium_Geckodriver - Fatal编程技术网

Java “保存网页”;“图像”;添加变量,以便以后使用selenium进行处理

Java “保存网页”;“图像”;添加变量,以便以后使用selenium进行处理,java,multithreading,selenium,geckodriver,Java,Multithreading,Selenium,Geckodriver,我的selenium脚本打开一个网页,然后用css选择器一个接一个地减慢DOM元素的处理,进行计算并将值插入数据库 如果我在不同的线程中执行这些计算,我可以加快整个过程,而主线程将打开下一页,在该页上执行所有必需的操作,并等待第二个线程完成,然后再次执行 但当浏览器离开页面时,我再也不能访问DOM元素了,因为页面已经改变了。我想知道是否有可能将该网页保存到某个变量中,以便以后在其他线程中进行处理,这样我就可以创建某种处理池,整个应用程序将分为两个线程(浏览器线程和处理/插入数据库线程) 创建一个

我的selenium脚本打开一个网页,然后用css选择器一个接一个地减慢DOM元素的处理,进行计算并将值插入数据库

如果我在不同的线程中执行这些计算,我可以加快整个过程,而主线程将打开下一页,在该页上执行所有必需的操作,并等待第二个线程完成,然后再次执行

但当浏览器离开页面时,我再也不能访问DOM元素了,因为页面已经改变了。我想知道是否有可能将该网页保存到某个变量中,以便以后在其他线程中进行处理,这样我就可以创建某种处理池,整个应用程序将分为两个线程(浏览器线程和处理/插入数据库线程)


创建一个只包含INSERT查询的池是没有意义的,因为INSERT并不慢-整个处理例程(在页面元素上迭代)都很慢

听起来您需要为每个“测试”创建一个线程。。。正在进行的测试生成浏览器,导航到页面,刮取页面,将数据推送到数据库,最后关闭浏览器。在这一点上,你应该能够很容易地在一台简单的计算机上生成6个以上的测试,它将运行6倍以上的速度。我知道这是一个非常害羞的解决方案,但它可能会很方便,直到你找到真正的答案。。。。尝试打开另一个浏览器。。。通过这种方式,你将两者分开,同时你可以将它们作为一个线程使用。。。希望它至少能帮上一点忙:)@StyleZ谢谢你的提示,我将启动几个selenium多线程实例,但实际上,如果我能按照我的要求去做,速度可能会更快(x2倍),听起来你需要为每个“测试”创建一个线程。。。正在进行的测试生成浏览器,导航到页面,刮取页面,将数据推送到数据库,最后关闭浏览器。在这一点上,你应该能够很容易地在一台简单的计算机上生成6个以上的测试,它将运行6倍以上的速度。我知道这是一个非常害羞的解决方案,但它可能会很方便,直到你找到真正的答案。。。。尝试打开另一个浏览器。。。通过这种方式,你将两者分开,同时你可以将它们作为一个线程使用。。。希望它至少能帮上一点忙:)@StyleZ谢谢你的提示,我将启动几个selenium实例来进行多线程处理,但实际上,如果我能按照我的要求去做,速度可能会更快(x2倍)