【发布时间】:2014-11-13 16:20:08
【问题描述】:
我使用 Selenium Webdriver 和 AutoIt 编写了 Java 代码,它打开了 Firefox 驱动程序,导航到需要通过选择软证书进行身份验证的页面,在弹出“证书选择”窗口时选择适当的证书,然后单击“确定”,在我正在访问的页面应该加载哪一点,但它只是加载一个空白的“新标签”;新标签本身不会打开,只是当前标签保持空白,标题为“新标签”。
如果我使用完全相同的 Firefox 配置文件手动执行此过程(没有让 Selenium Webdriver 打开 Firefox 驱动程序,我只是自己启动它),页面在身份验证后加载就好了。我还应该注意,页面使用 Internet Explorer 和 Chrome 的驱动程序实例成功加载。
我使用的是 Firefox v33.1、IE 10 和 Chrome v38。最后,我应该注意这与我的自动证书选择过程无关,因为即使我只有 Selenium Webdriver 打开一个 Firefox 驱动程序并停在那里,然后我自己选择证书并单击确定,它仍然可以同样的事情。
我认为 Selenium Webdriver 可能在它实例化的 Firefox 驱动程序中内置了一些烦人的防护,以防止它加载需要身份验证的页面。如果是这种情况,有谁知道如何禁用它?
【问题讨论】:
-
你能在不同的平台上运行它吗? (我猜你是在 Windows 上,所以在 Linux 或 Mac OS 上运行它。)Selenium 中的一些错误是特定于平台的。
-
不幸的是它必须在 Windows 平台上工作。我认为这与 Selenium Webdriver 加载指定配置文件的“模仿”而不是实际配置文件本身有关,因为当我转到 Firefox 故障排除信息并单击配置文件文件夹旁边的“显示文件夹”时,它会将我定向到名称为“anonymous90872345webdriver-profile”的文件夹,而不是配置文件本身的文件夹,就像我手动打开 Firefox 时那样。所有的书签和安装的证书都被复制了,但这不是真正的配置文件文件夹。
-
您误解了我的评论的意图:如果它在其他平台上运行良好但在 Windows 上运行良好,则很可能是 Selenium 中的错误。我并不是说你应该切换到另一个平台。
-
我希望我有时间将它部署到另一个平台,但不幸的是我没有。因此,当您指定要在 Firefox 驱动程序中打开的配置文件时,它会打开那个确切的配置文件,而不是某种模仿?如果我们可以验证这是预期的行为,可能会有所帮助。
-
默认情况下,它会在每次启动 FF 实例时创建一个 new 配置文件来运行 Firefox。这是正常的。
标签: java firefox selenium selenium-webdriver