使用浏览器的HEADLESS模式報錯ElementNotInteractableException

  • Post author:
  • Post category:其他



1.实践 Selenium + HEADLESS

使用浏览器的HEADLESS模式进行自动化测试,你需要先满足以下前提:

Python + Selenium 运行环境
Chrome 59+ 或者 Firefox 55+
ChromeDriver 或者 GeckoDriver 最新版已加入PATH,不加入PATH要提供絕對路徑


2.Chrome版实例

from time import sleep
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
 
options = Options()
options.add_argument('--headless')
options.add_argument('--disable-gpu') # 允许在无GPU的环境下运行,可选
options.add_argument('--window-size=1920x1080') # 建议设置
 
browser = webdriver.Chrome(chrome_options=options)
browser.get('https://www.baidu.com')
browser.find_element_by_id('kw').send_keys('HELLO')
browser.find_element_by_id('su').click()
 
sleep(1) # 简单粗暴的等待,实际项目中勿用
assert browser.title == u'HELLO_百度搜索'
browser.save_screenshot('chrome-headless-test.png')


3.Firefox版实例

from time import sleep
from selenium import webdriver
from selenium.webdriver.firefox.options import Options
 
options = Options()
options.add_argument('--headless')
# options.add_argument('--window-size=1920x1080') # Firefox无效
 
browser = webdriver.Firefox(firefox_options=options)
browser.set_window_size(1280, 1024) # 启动后设置浏览器大小,但是高度会随着访问的网页变化
 
browser.get('https://www.baidu.com')
browser.find_element_by_id('kw').send_keys('HELLO')
browser.find_element_by_id('su').click()
 
sleep(1)
assert browser.title == u'HELLO_百度搜索'
browser.save_screenshot('firefox-headless-test.png')


4.注意:


在實際運用工作項目的時候,chrome版最好加上下列設置,否則會報

ElementNotInteractableException

options.add_argument('--window-size=1920x1080')

當然,也可能是等待時間不夠導致,但是我用有界面方式運行的時候沒問題且保證了無界面運行

sleep(5)

也是抱這個錯誤。加上就沒問題了

在这里插入图片描述


5.另外:

如果chromedriver.exe的路徑沒有寫入PATH,要在參數中加上指定路徑:

driver = webdriver.Chrome(executable_path=(r'C:\Program Files\Google\Chrome\Application\chromedriver.exe'), chrome_options=chrome_options)

其他無界面瀏覽器學習貼:


1.Python 爬虫杂记 – Chrome Headless



2.selenium+webDriver+headless Chrome实现python爬虫



3.使用浏览器的HEADLESS模式进行自动化测试



4.python-使用無頭瀏覽器時出現ElementNotInteractableException



5.Chrome Headless模式(一)



版权声明:本文为weixin_39773337原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。