弃用警告:在 Windows 10 系统上通过 Selenium 使用 ChromeDriver 和 Chrome 时使用选项而不是 chrome_options 错误 [英] DeprecationWarning: use options instead of chrome_options error using ChromeDriver and Chrome through Selenium on Windows 10 system

查看:77
本文介绍了弃用警告:在 Windows 10 系统上通过 Selenium 使用 ChromeDriver 和 Chrome 时使用选项而不是 chrome_options 错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

尝试在我的 Windows 10 机器上运行此代码 https://github.com/KalleHallden/reddit_automations/blame/master/movie-tickets.py

Trying to run this code on my windows 10 machine https://github.com/KalleHallden/reddit_automations/blame/master/movie-tickets.py

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from decouple import config
import time

# the way to locate the button or thing you want on a website in chrome is
# by pressing cmd + shift + c and then you can use your mouse to find the 
# info on the element that you want and you can copy the full xpath.

options = webdriver.ChromeOptions()
# options.add_argument('--ignore-certificate-errors')
# options.add_argument('--incognito')
# options.add_argument('--headless')
driver = webdriver.Chrome("/Users/kalle/Downloads/chromedriver83", chrome_options=options)
driver.get(config('THEATRE_SITE'))
# for some odd reason you need to reload the site for it to load.
# possibly a bug of the theatre site
driver.get(config('THEATRE_SITE'))
time.sleep(3)
# select city
button = driver.find_element_by_xpath('/html/body/div[1]/div[3]/div/div/div[1]/div/div[2]/ul/li[1]/label/input')
button.click()

# save city
button = driver.find_element_by_xpath('/html/body/div[1]/div[3]/div/div/div[2]/span/button')
button.click()
time.sleep(2)

# proceed to tickets tab
button = driver.find_element_by_xpath('/html/body/div[1]/nav/div[2]/div[2]/div[1]/ul[1]/li[1]/a')
button.click()
time.sleep(2)

# select the movie you want (should be more specific than just selecting the first one but whateva)
button = driver.find_element_by_xpath('/html/body/div[1]/main/div/div[2]/div/div/div/div[2]/div/div[2]/div[2]/div[2]/ul/li[1]/ul/li/div/div[1]/div/span[2]/a')
button.click()
time.sleep(1)

# select the time you want to go
button = driver.find_element_by_xpath('/html/body/div[1]/main/div/div[1]/div/div/div/div[4]/section/div/div[2]/div[2]/ul/li/ul/li[1]/div/span/span[3]/span[2]/span')
button.click()
time.sleep(1)

# choose amount of people
button = driver.find_element_by_xpath('/html/body/div[1]/main/div/div[2]/div/div/div/div/section/div/div[2]/div/button')
button.click()
time.sleep(2)

# choose seats
button = driver.find_element_by_xpath('/html/body/div[1]/main/div/div[1]/div/div/div/div[2]/section/div[3]/div[2]/button')
button.click()
time.sleep(2)

# pay
button = driver.find_element_by_xpath('/html/body/div[1]/main/div/div[1]/div/div/div/div[2]/section/div[4]/div/div[2]/button/span')
button.click()

我已经安装了所有正确的程序:

I have all the correct programs installed:

  • 运行 python 3.8
  • 已安装 chrome 网络驱动程序
  • 运行 84 版稳定版 chrome 网络浏览器

当我运行该程序时,它会打开 chrome,但是我得到一个空白网页,上面什么都没有,只有一些文字显示数据:".仅此而已.

When I run the program it opens chrome however I get a blank web page with nothing on there but some text which says "data:." that is all nothing else.

这是我在 VS 代码中遇到的错误:

This is the error I get in VS code:

:Usersuser>python c:/chromedriver_win32/movie-tickets1.py
c:/chromedriver_win32/movie-tickets1.py:15: DeprecationWarning: use options instead of chrome_options
  driver = webdriver.Chrome(executable_path=r'C:chromedriver_win32chromedriver.exe', chrome_options=options)

DevTools listening on ws://127.0.0.1:29442/devtools/browser/872d4312-b51d-4a38-bc1b-3b80495950
Traceback (most recent call last):
  File "c:/chromedriver_win32/movie-tickets1.py", line 17, in <module>
    driver.get(config("https://www.google.co.uk"))
  File "C:UsersuserAppDataLocalPackagesPythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0LocalCachelocal-packagesPython38site-packagesdecouple.py", line 199, in __call__
    return self.config(*args, **kwargs)
  File "C:UsersuserAppDataLocalPackagesPythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0LocalCachelocal-packagesPython38site-packagesdecouple.py", line 83, in __call__
    return self.get(*args, **kwargs)
  File "C:UsersuserAppDataLocalPackagesPythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0LocalCachelocal-packagesPython38site-packagesdecouple.py", line 68, in get
    raise UndefinedValueError('{} not found. Declare it as envvar or define a default value.'.format(option))
decouple.UndefinedValueError: https://www.google.co.uk not found. Declare it as envvar or define a default value.

任何帮助将不胜感激,我不确定为什么解耦不起作用.

Any help would be much appreciated, I am unsure why decouple is not working.

推荐答案

这个错误信息...

DeprecationWarning: use options instead of chrome_options

...暗示您在您的程序中使用 chrome_options 来启动 Selenium 驱动 ChromeDriver 启动 浏览上下文.

...implies that in your program you have used chrome_options to initiate a Selenium driven ChromeDriver initiated google-chrome Browsing Context.

chrome_options 现在已弃用,您必须改用 options 并传递 ChromeDriver绝对路径em> 以及扩展名.

chrome_options is deprecated now and you have to use options instead as well as pass the absolute path of the ChromeDriver along with the extension.

当您在 系统,实际上你的代码行将是:

As you are triggering your tests on a windows-10 system, effectively you line of code will be:

options = webdriver.ChromeOptions()
options.add_argument('--headless')
driver = webdriver.Chrome(executable_path=r'C:chromedriver_win32chromedriver.exe', options=options)

这篇关于弃用警告:在 Windows 10 系统上通过 Selenium 使用 ChromeDriver 和 Chrome 时使用选项而不是 chrome_options 错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆