Headless模式的使用
在使用Selenium的Headless模式之前,首先需要导入无头模式的包。例如,对于Chrome浏览器,需要导入`selenium.webdriver.chrome.options`包。这样做的目的是为了能够使用无头模式的功能。
```python
from
selenium.webdriver.chrome.options
import
Options
```
要启用无头模式,只需要在初始化浏览器对象时添加相应的选项。可以通过设置`add_argument('headless')`来启用无头模式。
```python
opt
=
Options()
opt.add_argument('headless')
```
除了启用无头模式之外,还可以根据需要设置其他浏览器相关的参数。例如,可以通过`add_argument('windowsize=1920x1080')`来设置窗口大小。
```python
opt.add_argument('windowsize=1920x1080')
```
创建浏览器对象时,需要将包含无头模式选项的`opt`对象传递给WebDriver的构造函数。这样,浏览器就会在后台以无头模式运行。
```python
web
=
Chrome(options=opt)
```
在无头模式下,可以像平常一样使用Selenium的各种方法来操控浏览器和执行测试。例如,可以使用`get()`方法来打开网址,使用`find_element()`方法来定位元素并执行各种操作。
```python
web.get('定位到地址:北京,然后点击他el=web.find_element('xpath','//*[@id=changeCityBox]/ul/li[1]/a')这是新版的,旧版是:find_element_by_xpathel.click()点击事件搜索框输入:python,输入回车/点击搜索按钮web.find_element('xpath','//*[@id=search_input]').send_keys('python',Keys.ENTER)Keys.ENTER是回车div_list=web.find_elements('xpath','//*[@id=jobList]/div[1]/div')fordivindiv_list:job_name=div.find_element('xpath','./div/div/div/a').textjob_money=div.find_element('xpath','./div/div/div[2]/span').textcompany_name=div.find_element('xpath','./div/div[2]/div/a').textprint(job_name,job_money,company_name)
```
注意事项使用无头模式时,由于无法访问浏览器的UI,因此某些测试可能无法在无头模式下运行。
无头模式下缺少浏览器信息,或默认填充的浏览器信息带有爬虫痕迹,可能会被识别为机器人而导致爬虫执行失败。
页面动态加载时,有时会根据页面size来布局控件,如果size太小会出现控件加载失败情况。
在长时间运行的爬虫或自动化测试中,可能会遇到浏览器崩溃的问题。这是因为Chrome浏览器可能存在内存泄漏的情况。为了解决这个问题,可以尝试使用其他的浏览器或调整代码以减少资源消耗。