【问题标题】:Selenium Python Chrome open with def optionsSelenium Python Chrome 使用 def 选项打开
【发布时间】:2017-01-15 19:19:17
【问题描述】:

我想打开谷歌浏览器,就像它本身一样,chromedriver 在没有我的 cookie、密码、历史记录和所有员工的情况下打开它。 我尝试使用该选项,并在整个网络上搜索解决方案, 一个都没有 另外我试过了

从硒导入网络驱动程序 从 selenium.webdriver.common.keys 导入密钥 从 selenium.webdriver.chrome.options 导入选项

opt = webdriver.ChromeOptions()
opt.add_arguments("--user-data-dir=C:\Users\Bar\AppData\Local\Google\Chrome\User Data")
driver = webdriver.Chrome(opt)
driver.get("https://www.google.com/")

但它没有工作它说:

C:\Users\Bar\AppData\Local\Programs\Python\Python35-32\python.exe C:/Users/Bar/PycharmProjects/yad2/Webdriver.py
  File "C:/Users/Bar/PycharmProjects/yad2/Webdriver.py", line 7
    opt.add_arguments("--user-data-dir=C:\Users\Bar\AppData\Local\Google\Chrome\User Data")
                     ^
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 18-19: truncated \UXXXXXXXX escape

Process finished with exit code 1

【问题讨论】:

  • 省略 -- 并尝试使用 opt.add_arguments("user-data-dir=C:\Users\Bar\AppData\Local\Google\Chrome\User Data")
  • @SaurabhGaur 同样的错误:\
  • 我试图将 r 放在字符串之前以使其成为原始字符串,它现在如下所示:Traceback (most recent call last): File "C:/Users/Bar/PycharmProjects/yad2/Webdriver.py", line 6, in <module> opt.add_arguments(r"user-data-dir=C:\Users\Bar\AppData\Local\Google\Chrome\User Data") AttributeError: 'Options' object has no attribute 'add_arguments'
  • @SaurabhGaur 我决定将用户数据复制到项目文件夹中,而且我的参数有误s,应该是没有s的参数新问题:pastebin.com/Fr35Ph4y
  • 我已经提供了它作为答案,试试这个并让我知道..:)

标签: python selenium selenium-webdriver


【解决方案1】:

AttributeError: 'Options' 对象没有属性 'add_arguments'

应该是add_argument 而不是add_arguments。你应该尝试:-

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

opt = webdriver.ChromeOptions() 
opt.add_argument("user-data-dir=C:\Users\Bar\AppData\Local\Google\Chrome\User Data")

AttributeError: 'Service' 对象没有属性 'process'

现在您需要将此 opt 设置为 chrome_options 并将其传递给 ChromeDriver 为:-

driver = webdriver.Chrome(chrome_options=opt)
driver.get("https://www.google.com/")

已编辑 :- 您需要从此处获取download latest chromedriver.exe 可执行文件并将此 zip 解压缩到系统的任何位置,并将此路径位置与可执行文件 chromedriver.exe 提供为 executable_path="path/to/chromedriver.exe" 并初始化 @ 987654332@ 为:-

driver = webdriver.Chrome(executable_path="path/to/chromedriver.exe", chrome_options=opt)
driver.get("https://www.google.com/")

【讨论】:

  • 它工作正常,但命令无法正常工作,就像它无法打开 Google.com - @Saurabh Gaur
  • 您是否下载了可执行的 ChromeDriver 并将其设置为系统路径变量??
  • 如果您尚未下载需要下载 chromedriver.exe 并提供此路径到 ChromeDriver,请尝试编辑答案并告诉我..
  • @UnityNewb 请将此目录C:\Users\Bar\AppData\Local\‌​Google\Chrome\User Data" for user-data-dir 更改为任何其他带有空文件夹的新位置,然后尝试..
  • 感谢工作!,非常感谢!
【解决方案2】:

如果您收到以下错误

SyntaxError:(unicode 错误)“unicodeescape”编解码器无法解码位置 16-17 中的字节:截断 \UXXXXXXXX 转义

将所有反斜杠更改为如下所示的正斜杠

opt.add_argument("user-data-dir=C:\Users\Bar\AppData\Local\Google\Chrome\User Data")

opt.add_argument("user-data-dir=C:/Users/Bar/AppData/Local/Google/Chrome/User Data")

【讨论】:

  • 这与 OP 的要求有何关系?
猜你喜欢
  • 2017-09-24
  • 1970-01-01
  • 2018-08-25
  • 2022-10-23
  • 2019-07-04
  • 2016-09-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多