使用selenium 接管 已打开的浏览器

3 篇文章 0 订阅
2 篇文章 0 订阅

在使用selenium进行自动化测试中我们有时会遇到这样的情况:

       我们需要手动打开浏览器,进入到所需的页面,执行一些手动任务,如输入表单、输入验证码,登陆成功后,然后再开始运行自动化脚本。

这种情况下如何使用selenium来接管先前已打开的浏览器呢?

这里给出Google Chrome浏览器的解决方案。

我们可以利用Chrome DevTools协议。它允许客户检查和调试Chrome浏览器。

打开cmd,在命令行中输入命令:

chrome.exe --remote-debugging-port=9222 --user-data-dir="C:\selenum\AutomationProfile"

      对于-remote-debugging-port值,可以指定任何打开的端口。

      对于-user-data-dir标记,指定创建新Chrome配置文件的目录。它是为了确保在单独的配置文件中启动chrome,不会污染你的默认配置文件。

      还有,不要忘了在环境变量中PATH里将chrome的路径添加进去。

此时会打开一个浏览器页面,我们输入百度网址,我们把它当成一个已存在的浏览器:

现在,我们需要接管上面的浏览器。新建一个python文件,运行以下代码:

 

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
 
chrome_options = Options()
chrome_options.add_experimental_option("debuggerAddress", "127.0.0.1:9222")
chrome_driver = "C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe"
driver = webdriver.Chrome(chrome_driver, chrome_options=chrome_options)
print(driver.title)

 

会发现打印出了 “百度一下,你就知道” 的网页标题。这样我们就实现了对一个已打开的浏览器的控制。

  • 8
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
### 回答1: selenium是一个自动化测试工具,它可以模拟用户操作浏览器,执行各种自动化测试任务。如果需要接管打开的Firefox浏览器,可以通过以下步骤来实现: 1. 安装selenium:首先,您需要在计算机上安装selenium。您可以从selenium官方网站上找到安装指南,并按照指南进行安装。 2. 下载geckodriver:geckodriver是一个用于Firefox浏览器的驱动程序,它允许selenium与Firefox浏览器进行通信。您需要下载与您的Firefox浏览器版本相对应的geckodriver,并将其解压到一个易于访问的位置。 3. 在代码中指定geckodriver路径:在使用selenium时,您需要在代码中指定geckodriver的路径。您可以使用以下代码来设置geckodriver路径: ```python from selenium import webdriver # 设置geckodriver路径 path_to_geckodriver = 'geckodriver的路径' # 启动Firefox浏览器并指定geckodriver路径 browser = webdriver.Firefox(executable_path=path_to_geckodriver) ``` 4. 接管Firefox浏览器:通过以上步骤,您已经成功地启动了一个新的Firefox浏览器实例。要接管已经打开的Firefox浏览器,您需要使用Firefox浏览器的会话ID。您可以使用以下代码来接管打开的Firefox浏览器: ```python from selenium import webdriver # 设置geckodriver路径 path_to_geckodriver = 'geckodriver的路径' # 设置已打开的Firefox浏览器的会话ID session_id = '已打开的Firefox浏览器的会话ID' # 启动与会话ID相对应的Firefox浏览器并指定geckodriver路径 browser = webdriver.Remote(command_executor=f'http://127.0.0.1:4444/session/{session_id}', desired_capabilities={'browserName': 'firefox'}, options=options) ``` 通过以上步骤,您可以使用selenium接管打开的Firefox浏览器,并执行各种自动化测试任务。请确保您已正确设置geckodriver的路径,并提供正确的会话ID以接管打开的Firefox浏览器。 ### 回答2: Selenium是一种流行的自动化测试工具,它可以用于驱动各种浏览器执行操作。要接管打开的Firefox浏览器,我们需要使用Selenium的远程WebDriver来连接到已打开浏览器实例。 首先,我们需要确保已经安装了Selenium WebDriver的Firefox驱动程序。然后,通过创建一个FirefoxDriver实例,我们可以打开一个新的Firefox浏览器窗口。 要接管打开浏览器,我们需要获取该浏览器的会话ID。我们可以通过执行以下代码来获取会话ID: ``` String sessionId = ((RemoteWebDriver) driver).getSessionId().toString(); ``` 然后,我们可以使用获取的会话ID来创建一个新的FirefoxDriver实例,并将会话ID传递给它: ``` FirefoxOptions options = new FirefoxOptions().setLegacy(true); FirefoxDriver takenOverDriver = new FirefoxDriver(options); takenOverDriver = new FirefoxDriver(new HttpCommandExecutor(new URL("http://localhost:4444/"), sessionId, null), options); ``` 这将创建一个新的FirefoxDriver实例并将其连接到已打开的Firefox浏览器窗口。 现在,我们可以使用新的FirefoxDriver实例来执行各种操作,例如导航到不同的URL、查找元素、填写表单等。 值得注意的是,接管打开浏览器可能需要一些额外的配置,例如网络代理设置、浏览器配置文件等,以确保正确地管理已打开浏览器实例。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值