小编Dem*_*axl的帖子

如何使用 selenium (python) 连接到现有的 Firefox 实例

有没有办法打开 Firefox 浏览器,然后使用 selenium 连接到它?我知道这可以在 chrome 上通过在命令行中启动它并使用--remote-debugging-port如下参数来实现:

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


subprocess.Popen('"C:/Program Files (x86)/Google/Chrome/Application/chrome.exe" --remote-debugging-port=9222', shell=True)
        
options = Options()
options.add_experimental_option("debuggerAddress", "127.0.0.1:9222")
driver = webdriver.Chrome(executable_path=PATH, options=options)
Run Code Online (Sandbox Code Playgroud)

这可以在火狐中完成吗?我已经搜索和检查与此相关的问题有一段时间了,但没有运气。
我发现的唯一线索是 geckodriver 有一个--connect-existing参数,但我不知道如何使用它。如何将参数传递给 geckodriver 并在 selenium 中使用它?

任何帮助,将不胜感激。如果无法完成,请告诉我。谢谢

编辑: 好的,我已经取得了一些进展,我知道如何将 geckodriver args 传递给 selenium:

driver = webdriver.Firefox(service=Service(PATH, service_args=['--marionette-port', '9394', '--connect-existing']))
Run Code Online (Sandbox Code Playgroud)

现在的问题是,即使我使用这样的调试器服务器启动 Firefox:
firefox.exe -marionette -start-debugger-server <PORT>
当我运行代码时,它会引发此错误消息:

Traceback (most recent call last):
  File "c:\Users\maxis\Desktop\Python\Freelance\Application for Opening Web Browsers\browsers\firefox.py", line 107, in <module>
    driver = …
Run Code Online (Sandbox Code Playgroud)

python firefox selenium-webdriver geckodriver

5
推荐指数
1
解决办法
6927
查看次数

如何使用 selenium python 找到网页中的所有元素

这是一个非常简单的问题,但令人惊讶的是我在互联网上找不到答案。我试图找到网页中存在的所有元素。我知道在硒中寻找元素你可以说:

driver.find_elements_by_tag_name()
driver.find_elements_by_class_name()
driver.find_elements_by_css_selector()
driver.find_elements_by_name()
driver.find_elements_by_id()
Run Code Online (Sandbox Code Playgroud)

等等。但我怎样才能找到所有元素呢?

python selenium

2
推荐指数
1
解决办法
6089
查看次数