在python版的Webdriver中要打开chrome浏览器,需要安装chromedriver.exe。。
将这个chromedriver.exe放置在chrome的安装目录下 相对路径为 …\Google\Chrome\Application\,然后设置path环境变量,把chrome的安装目录地址放入path变量中。我的安装目录是C:\Program Files\Google\Chrome\Application,也即是在path变量的最后,加上此目录即可,然后尝试在python中运行
from selenium import webdriver
driver = webdriver.Chrome()
若不报错,即代表安装成功。
2.打开本地的Chrome
import os
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from time import sleep
executable_path = "C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe" //指定chromediver的位置,如果在默认路径,这两行可以省略。
os.environ["webdriver.chrome.driver"] = executable_path
options = webdriver.ChromeOptions() //定义配置对象
options.add_argument("--user-data-dir="+r"C:/Users/cui/AppData/Local/Google/Chrome/User Data/")
//指定用户的配置地址,并加载至配置对象中。
browser = webdriver.Chrome(executable_path,chrome_options=options)
//此处注意,有两个参数,后面那个参数,一定要写成 chrome_options=XX的形式,否则运行报错。
备注:chrome的用户配置数据,在c盘的user用户下,可能有些人不能找到此目录,这是因为AppDate文件夹是默认隐藏的,需要进入文件夹选项去设置一下即可。
设置浏览器参数为了避免每次运行程序都打开一个窗口,我们也可以设置无窗口访问,只需添加浏览器参数即可:
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
url = ' https://www.baidu.com/'
chrome_options = Options()
chrome_options.add_argument('--headless')
chrome_options.add_argument('lang=zh_CN.utf-8')
UserAgent = 'Mozilla/5.0 (Windows NT 10.0Win64x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.131 Safari/537.36'
chrome_options.add_argument('User-Agent=' + UserAgent)
driver = webdriver.Chrome(chrome_options=chrome_options)
driver.maximize_window()
driver.minimize_window()
driver.get(url)
print(driver.title)
常用参数
启动就最大化--start-maximized
指定用户文件夹 User Data 路径,可以把书签这样的用户数据保存在系统分区以外的分区–-user-data-dir=”[PATH]”
指定缓存Cache路径–-disk-cache-dir=“[PATH]” 指定Cache大小,单位Byte–-disk-cache-size=100
隐身模式启动–-incognito
禁用Javascript–-disable-javascript# 禁止加载所有插件,可以增加速度--disable-plugins
禁用JavaScript--disable-javascript
禁用d出拦截--disable-popup-blocking
禁用插件--disable-plugins
禁用图像--disable-images
设置代理chrome_options.add_argument('--proxy-server=http://{ip}:{port}') #http://127.1.1.10:8080
服务器在阿里云上,将apt源换成阿里的之后,直接 sudo apt install firefox 即可。
Firefox运行还需要D-BUS,因此同时还需要 sudo apt install dbus-x11
xvfb这个仿真框架使用虚拟内存能让X-Server运行在没有显示设备的机器上。这样,浏览器就可以运行了。在ubuntu和Debian上安装xvfb,只要运行:
sudo apt-get install xvfb
现在,可以运行xvfb服务上一个带有数字的显示设备上,这样是为了防止你在下阶段添加设备时引发冲突。用以下命令分配一个显示设备 10..
sudo Xvfb :10 -ac
-ac代表关闭xvfb的访问控制。
在你运行浏览器前,你首先要设置DISPLAY环境变量,以指定xvfb运行在哪个显示设备上。在加入环境变量前,我们检查一下所有的这些都如我们所料:
如果终端(terminal)没有显示错误,就说明你已经成功运行Firefox在无显示设备的ubuntu上了。它会一直运行,直到你使用ctrl + C或其它类似方法来终止其运行。同时,它不会有任何输出。
如果你能成功运行以上的步骤,那么接下来的部分就是轻而易举了。现在,我们可以在ubuntu服务器上运行selenium,如同你在本地运行一样。
安装完成后,将geckodriver所在路径写入PATH中,之后就可以在服务端进行selenium测试
笔者使用的shell是zsh,为了把PATH和DISPLAY这两个变量固定下来,在 ~/.zshrc 中将下面两句语句写入
安装xvfb之后,可以考虑使用python库pyvirtualdisplay,防止出现geckodriver出现GBK_BACKEND相关错误
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)