gpt4 book ai didi

java - Firefox 32 或 33 是​​否有望与 Selenium RC 一起使用?

转载 作者:行者123 更新时间:2023-11-30 08:59:34 25 4
gpt4 key购买 nike

只是想问一下为什么 Selenium RC 不能与最新的 Firefox 版本一起使用?

这是代码(常规):

import org.openqa.selenium.server.*;
import com.thoughtworks.selenium.DefaultSelenium
import com.thoughtworks.selenium.Selenium
import com.thoughtworks.selenium.SeleniumException
import com.thoughtworks.selenium.Wait
import java.util.concurrent.TimeUnit


RemoteControlConfiguration rcc = new RemoteControlConfiguration()
System.out.println("Using firefox launcher")
File ffp = new File("C:\\Work\\ff_custom_profile")
rcc.setFirefoxProfileTemplate(ffp)
rcc.setPort(4444)

seleniumServer = new SeleniumServer(rcc)
seleniumServer.start()

System.out.println("Server started")

Selenium seleniumInstance = new DefaultSelenium("localhost", 4444, "firefox", "https://url/")
seleniumInstance.start()

System.out.println("Driver started");

当我使用 Firefox 28 (Windows 7 x86) 运行这段代码时,它运行良好:

Using firefox launcher
20:46:35.692 INFO - Java: Sun Microsystems Inc. 20.14-b01
20:46:35.692 INFO - OS: Windows 7 6.1 x86
20:46:35.723 INFO - v2.43.1, with Core v2.43.1. Built from revision 5163bce
20:46:36.020 INFO - RemoteWebDriver instances should connect to: http://127.0.0.1:4444/wd/hub
20:46:36.020 INFO - Version Jetty/5.1.x
20:46:36.020 INFO - Started HttpContext[/selenium-server/driver,/selenium-server/driver]
20:46:36.035 INFO - Started HttpContext[/selenium-server,/selenium-server]
20:46:36.035 INFO - Started HttpContext[/,/]
20:46:36.067 INFO - Started org.openqa.jetty.jetty.servlet.ServletHandler@1114460
20:46:36.067 INFO - Started HttpContext[/wd,/wd]
20:46:36.067 INFO - Started SocketListener on 0.0.0.0:4444
20:46:36.067 INFO - Started org.openqa.jetty.jetty.Server@15e0873
Server started
20:46:36.160 INFO - Checking Resource aliases
20:46:36.191 INFO - Command request: getNewBrowserSession[firefox, https://url/, ] on session null
20:46:36.207 INFO - creating new remote session
20:46:36.238 INFO - Allocated session 640d3bf362ab4840ad7c3f3ac2b5695d for https://url/, launching...
jar:file:/C:/Work/TMP/selenium-server-standalone-2.43.1.jar!/customProfileDirCUSTFFCHROME
20:46:36.925 INFO - Preparing Firefox profile...
20:46:38.127 INFO - Launching Firefox...
20:46:41.537 INFO - Got result: OK,640d3bf362ab4840ad7c3f3ac2b5695d on session 640d3bf362ab4840ad7c3f3ac2b5695d
Driver started

但是当我使用 Firefox 32 或 33 (Windows 7 x86) 运行此代码时,我得到以下信息:

Using firefox launcher
20:49:26.467 INFO - Java: Sun Microsystems Inc. 20.14-b01
20:49:26.467 INFO - OS: Windows 7 6.1 x86
20:49:26.467 INFO - v2.43.1, with Core v2.43.1. Built from revision 5163bce
20:49:26.576 INFO - RemoteWebDriver instances should connect to: http://127.0.0.1:4444/wd/hub
20:49:26.576 INFO - Version Jetty/5.1.x
20:49:26.591 INFO - Started HttpContext[/selenium-server/driver,/selenium-server/driver]
20:49:26.591 INFO - Started HttpContext[/selenium-server,/selenium-server]
20:49:26.591 INFO - Started HttpContext[/,/]
20:49:26.607 INFO - Started org.openqa.jetty.jetty.servlet.ServletHandler@1114460
20:49:26.607 INFO - Started HttpContext[/wd,/wd]
20:49:26.623 INFO - Started SocketListener on 0.0.0.0:4444
20:49:26.623 INFO - Started org.openqa.jetty.jetty.Server@15e0873
Server started
20:49:26.669 INFO - Checking Resource aliases
20:49:26.669 INFO - Command request: getNewBrowserSession[firefox, https://url/, ] on session null
20:49:26.669 INFO - creating new remote session
20:49:26.685 INFO - Allocated session 740dfe19fd58418db02be166c420516d for https://url/, launching...
jar:file:/C:/Work/TMP/selenium-server-standalone-2.43.1.jar!/customProfileDirCUSTFFCHROME
20:49:27.247 INFO - Preparing Firefox profile...
20:49:28.386 INFO - Launching Firefox...

请注意输出中的差异:使用 Firefox 28,Selenium 客户端成功启动......

20:46:41.537 INFO - Got result: OK,640d3bf362ab4840ad7c3f3ac2b5695d on session 640d3bf362ab4840ad7c3f3ac2b5695d

...在 Firefox 32 或 33 上失败。

我进行了一些实验,发现我可以通过更改 Firefox 配置文件 (prefs.js) 中的以下设置使其在 FF 32 或 33 中工作:

user_pref("browser.startup.homepage_override.mstone", "33.1.1");

如果我将其更改为我的 FF 28 配置文件 (16.0.2) 中的值:

user_pref("browser.startup.homepage_override.mstone", "16.0.2");

然后,它工作正常。但我不喜欢这种 hack,原因有二:

  1. 当我在使用脚本进行此更改后打开 Firefox 时,它会打开 Whatsnew 页面 ( https://www.mozilla.org/en-US/firefox/33.1.1/whatsnew/?oldversion=16.0.2 ),这对于自动化来说非常烦人。

  2. 当我在此更改后手动打开 Firefox 时,此设置会恢复到其之前的值 (33.1.1),并且故事从头开始。

我尝试了不同的 Selenium RC 版本(2.41、2.42、2.43),结果相同。

使用 Firefox 32 & 33 和 Selenium RC 2.44,我收到以下错误:无法启动新的浏览器 session :java.lang.RuntimeException:java.lang.RuntimeException:在路径中找不到 Firefox!请将包含“firefox.exe”的目录添加到您的 PATH 环境中。

嗯,我把代码改成...

Selenium seleniumInstance = new DefaultSelenium("localhost", 4444, "*firefox C:\Program Files\Mozilla Firefox\firefox.exe", "https://url/"

...并遇到与上述 Selenium 2.42 和 2.43.1 相同的失败。

那么问题来了:为什么 Firefox 32 或 33 不能与 Selenium RC 一起工作,以及如何让它工作?

注意:我确实意识到迁移到 Selenium 2 (WebDriver) 很有意义,但出于某些原因,我需要在当前状态下支持此遗留代码。

最佳答案

通常 selenium 会在浏览器更新后不久发布更新版本的客户端。关注the downloads page .

关于java - Firefox 32 或 33 是​​否有望与 Selenium RC 一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27175898/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com