python - 如何在 mac、linux 和 windows 等所有平台的 selenium 中使用 chromedriver?
问题描述
实际上,我正在做一个创建库包以添加到 PIP 存储库中的项目,我必须在其中创建必须在所有平台上都可以执行的单个程序。这是我的程序:
def DataSet():
**PATH = "C:\Program Files (x86)\chromedriver.exe"**
DataSet.driver = webdriver.Chrome(PATH)
DataSet.driver.get(url)
r = input('\n'+"Enter the dataset name: ")
login_form = DataSet.driver.find_element_by_xpath("//h1[contains(text(),'{}')]".format(r))
check = login_form.click()
urr = DataSet.driver.current_url
这里我定义的PATH在所有 windows、mac 和 Linux 中都不相同。有没有办法解决这个问题,请尽快回复。提前致谢。
解决方案
您可以采取不同的方法来解决这个问题,这里有一些解决方案:
使用 Docker 分发您的应用程序(最受欢迎)。
一旦你容器化你的应用程序/程序,无论它在哪个平台上运行,它都会运行相同的。chromedriver 也应该与 docker 容器一起打包。
这是Dockerfile
使用 chromedriver 和 selenium 的示例参考:Python-Selenium-Chromedriver 的示例 Dockerfile
第二种方法是检查操作系统,然后在特定于平台的位置寻找 chromedriver。如果 chromedriver 不存在,请要求应用程序用户安装在特定位置(也添加 PATH),然后使用该应用程序。
推荐阅读
- r - 对向量中的重复项进行排序和评估
- azure - Azure 即用即付典型定价
- python - 替换 python 字符串中的字符 - 用 Print 输出奇数
- java - 如何在春季动态禁用特定API?
- javascript - 何时以及为何使用订阅的错误处理程序?
- css - Firfeox 无法根据 font-family 的顺序找到字体
- python - 如何修复'AttributeError:'Button1'对象没有属性'fn''
- email - 如何使用 Azure B2C 自定义策略在外部 IDP 登录期间传递和验证 signInEmail 声明?
- excel - 是否可以根据从其他数组收集的值来扩展现有数组的长度?
- python - Python chromedriver WebDriverException:无效参数