Selenium Headless模式的使用

tamoadmin 赛事报道 2024-04-27 13 0
Selenium

Headless模式的使用

1.导入无头模式的包

在使用Selenium的Headless模式之前,首先需要导入无头模式的包。例如,对于Chrome浏览器,需要导入`selenium.webdriver.chrome.options`包。这样做的目的是为了能够使用无头模式的功能。

```python

from

selenium.webdriver.chrome.options

import

Options

```

2.启用无头模式

要启用无头模式,只需要在初始化浏览器对象时添加相应的选项。可以通过设置`add_argument('headless')`来启用无头模式。

```python

opt

=

Options()

opt.add_argument('headless')

```

3.设置其他浏览器相关参数(可选)

除了启用无头模式之外,还可以根据需要设置其他浏览器相关的参数。例如,可以通过`add_argument('windowsize=1920x1080')`来设置窗口大小。

```python

opt.add_argument('windowsize=1920x1080')

```

4.创建浏览器对象

创建浏览器对象时,需要将包含无头模式选项的`opt`对象传递给WebDriver的构造函数。这样,浏览器就会在后台以无头模式运行。

```python

web

=

Chrome(options=opt)

```

5.使用Selenium的Headless模式

在无头模式下,可以像平常一样使用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太小会出现控件加载失败情况。

Selenium Headless模式的使用

在长时间运行的爬虫或自动化测试中,可能会遇到浏览器崩溃的问题。这是因为Chrome浏览器可能存在内存泄漏的情况。为了解决这个问题,可以尝试使用其他的浏览器或调整代码以减少资源消耗。