【问题标题】:why i am not getting chromedriver exception in python为什么我在 python 中没有得到 chromedriver 异常
【发布时间】:2020-04-09 21:10:31
【问题描述】:

我正在使用以下代码。

import pytest
import time
import json
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.support import expected_conditions
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities

from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
#login
driver = webdriver.Chrome()
driver.get("url")
#time.sleep(10)
driver.set_window_size(920, 680)
driver.find_element(By.ID, "loginUserName").send_keys("xx")
driver.find_element(By.ID, "loginPassword").send_keys("yy")
driver.find_element(By.ID, "loginButton").click()

它对我来说工作正常,我没有为 chrome-extension 包含任何路径和设置属性。如果我共享这个程序,对方会收到以下错误并且他们有 chromedriver .exe 在 python 文件夹中,在同一个文件夹中他们创建了这个 python 文件

Traceback(最近一次调用最后一次):文件 "C:\Users\1025043\AppData\Local\Programs\Python\Python37-32\anu\1.py", 第 8 行,在 driver = webdriver.Chrome(chrome_driver_path) NameError: name 'chrome_driver_path' is not defined

在我的道路上,

['', 'C:\Users\1024983\AppData\Local\Programs\Python\Python37\python37.zip', 'C:\Users\1024983\AppData\Local\Programs\Python\Python37\DLLs', 'C:\Users\1024983\AppData\Local\Programs\Python\Python37\lib', 'C:\Users\1024983\AppData\Local\Programs\Python\Python37', 'C:\Users\1024983\AppData\Local\Programs\Python\Python37\lib\site-packages', 'C:\Users\1024983\AppData\Local\Programs\Python\Python37\lib\site-packages\win32', 'C:\Users\1024983\AppData\Local\Programs\Python\Python37\lib\site-packages\win32\lib', 'C:\Users\1024983\AppData\Local\Programs\Python\Python37\lib\site-packages\Pythonwin']

这是什么原因?

注意:我使用的是 Windows 10,Python 3.7.4,selenium 3.141.0,Chrome 版本 78.0.3904.108(对方也只使用这个版本)

【问题讨论】:

  • chromedriver.exe 需要在路径中,它在您的计算机中,所以它可以工作。
  • 在对方的系统中,他们在 python 文件夹中也有 exe,在同一个文件夹中他们创建了 .py 文件..
  • 所以代码本身是从不同的位置运行的,或者您手动将其添加到系统 PATH 中。为避免此类问题,请将chromedriver 添加到项目中并包含它的相对路径。
  • 不,我也没有包含在环境变量和项目主页中

标签: python selenium-chromedriver


【解决方案1】:

chromedriver.exe 应该包含在可执行路径中。 下载 chromedriver.exe 并将其添加到代码中,如下所示。 (添加 chrome 驱动程序路径,因为它位于您的机器中)或者您可以包含在 Windows 10 环境变量中的 PATH 变量中。

例如

import pytest
import time
import json
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.support import expected_conditions
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities

from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
#login
driver = webdriver.Chrome(executable_path=r'C:\chromedriver.exe')
driver.get("url")
#time.sleep(10)
driver.set_window_size(920, 680)
driver.find_element(By.ID, "loginUserName").send_keys("xx")
driver.find_element(By.ID, "loginPassword").send_keys("yy")
driver.find_element(By.ID, "loginButton").click()

【讨论】:

  • 但如果没有“driver = webdriver.Chrome(executable_path=r'C:\chromedriver.exe')”,我的代码可以正常工作..这就是我的问题?
  • 您是否将chromedriver.exe 包含在项目主页中或添加到环境变量中的PATH 变量中?
  • 不,我也没有包含在环境变量和项目主页中。这就是我想知道的原因
  • 如果没有 chromedriver.exe,这将无法工作。因此,您能否通过打印如下路径进行仔细检查,import sys print(sys.path)
  • 我已经附上了我的路径..请查看它,请告诉我哪个用于 chromedriver.exe...我不清楚
猜你喜欢
  • 2022-01-22
  • 2018-06-22
  • 2012-03-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多