selenium2.53的一些实践

    xiaoxiao2025-06-06  43

    Selenium是一个自动化测试工具,可以模拟用户操作浏览器的行为,故也可以用于对一些需要执行JS脚本的网站的爬虫的开发

    一、Linux(Centos)下命令行环境的搭建

      1.1 Xvfb的安装

    由于命令行下没有图形界面,这样就需要一个虚拟的后台运行的桌面Xvfb来欺骗浏览器使其得以正常运行

    yum install Xvfb

      1.2 后台启动Xvfb并指定DISPLAY的值

    Xvfb -ac :110 -screen 0 1280x1024x8 & export DISPLAY=:110这样启动的浏览器就会在虚拟的桌面:110运行

    二、ChromeDriver的使用

    2.1 指定ChromeDriver文件路径

    Windows : System.setProperty("webdriver.chrome.driver", "/path/to/chromedriver.exe"); Linux : System.setProperty("webdriver.chrome.driver", "/path/to/google-chrome"); chromium : System.setProperty("webdriver.chrome.driver", "/path/to/chromium-browser");

    2.2 使用ChromeDriver开发注意事项

    2.2.1 尽量selenium和chrome都用最新版的,也可以根据chromedriver支持的版本安装相应版本的chrome 2.2.2 linux下root用户不能直接启动chrome,需要指定用户设置保存的目录

    命令行启动: chromium-browser --user-data-dir=/pa/admin/to/dir https://www.google.cn JAVA: ChromeOptions options = new ChromeOptions(); options.addArguments("user-data-dir=/path/to/your/custom/profile"); WebDriver driver = new ChromeDriver(options);

    2.2.3 因为是一个Webdriver对应一个浏览器进程,所以多标签操作不太可行

    ChromeDriver下载地址(需要科学上网):  http://chromedriver.storage.googleapis.com/index.html

    三、FirefoxDriver的使用

    3.1 在Linux下不能多标签操作,每次都是新开一个浏览器,会导致浏览器进程较多,需要频繁开关

    原因是在selenium-firefox-driver-2.53.1.jar里面的webdriver_prefs.json文件硬编码了 对应的java类是FirefoxProfile,其中硬编码了一些不希望我们去更改的值

    四、Selenium的性能优化思路

    4.1 关闭浏览器的图片功能   4.1.1 phantomsJS : --load-images=false ,在linux下有bug,这样设置的话会导致内存不断增加,最后挂掉 4.2 打开浏览器的本地缓存   4.2.1 phantomJS : --disk-cache=true

    转载请注明原文地址: https://ju.6miu.com/read-1299676.html
    最新回复(0)