问题标签 [desiredcapabilities]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1417 浏览

python - 在 Selenium webdriver 中应用代理网关

我的目标是在 Selenium webdriver 中应用代理网关(例如 geosurf.io)。

  1. 我需要通过使用DesiredCapabilities来做到这一点,因为似乎DesiredCapabilities是插入代理 [gateway] ( source ) 的唯一方法。
  2. DesiredCapabilities功能在 Selenium Grid 中工作(不仅仅是在普通的 Selenium 服务器中)。硒网格文档
  3. 我已经在本地 Windows 10 机器上成功运行了 Selenium Grid。 在此处输入图像描述

  4. 因此,我编写了以下代码来为 Selenium webdriver 中使用的功能应用DesiredCapabilities和代理网关:

    /li>

在运行上述代码时,我已经强制输出 webdriver.py (C:\Python27\Lib\site-packages\selenium\webdriver\remote\webdriver.py__init__ )内部的一些内容,在:

然而问题变成了webdriver.py

错误TypeError: string indices must be integers似乎与proxy gateway类型无关,也DesiredCapabilities与设置无关。

在第 190 行输出时,response变量是一个字符串,包含 html 片段:

如何解决这个webdriver.py问题?

更新

当进一步调试时webdriver.py,我在之后输出response变量response = self.execute(Command.NEW_SESSION, parameters)

为什么它不包含sessionIdkey-value ?

更新 2

我的部分成功是跑步

作为脚本的最后一行。它产生了以下错误:

将代理地址更改为localhost:8080带来了同样的错误......

更新 3

我已成功在浏览器http://192.168.43.98:5566/wd/hub/static/resource/hub.html上手动启动/打开节点控制台 在此处输入图像描述

然而,我唯一可以加载的会话是 Chrome 浏览器 在此处输入图像描述

无法成功为此网格加载 FireFox 或 IE 10 浏览器会话: 在此处输入图像描述

我不知道如何管理外部代理插入的网格节点是否有帮助。

0 投票
1 回答
1764 浏览

java - 在 Selenium 3 中获取操作系统信息和 Firefox 浏览器版本

我正在升级到 Selenium 3,它破坏了我很久以前编写的从WebDriver实例中检索操作系统和浏览器信息的函数。

这用于获取浏览器版本和操作系统名称:

它不再起作用了。我得到浏览器版本的空字符串和操作系统名称的“任何”。我正在使用第三方工具来管理驱动程序二进制文件:

这就是我创建驱动程序实例的方式:

这与我的 Selenium 2 代码没有太大区别。唯一的区别是使用来自 3rd 方工具的驱动程序管理器,因为现在使用 Firefox 需要 geckodriver。

0 投票
0 回答
462 浏览

windows - Appium Desktop for Windows:如何调用设备的浏览器。错误“...com.android.browser not found”

TL;DR: 当我打开模拟器并尝试使用 Appium 调用浏览器时,我收到一条错误消息,指出浏览器不可调用,即使设备中有浏览器也是如此。不知道它叫什么,所以我可以在 Desired Capabilities 中调用它。

长话短说: 我是 Appium 的新手,所以试图进行基本的模拟器会话。我也是 Java 新手,但我在这里没有使用 Java,Appium 网站视频不需要 Java 来进行基本会话,所以这不是“你的代码是垃圾”的 Java 问题。(我观看的视频链接:https ://youtu.be/IOSUBda2-g4 ,虽然这并没有调用设备上的浏览器,所以对于像我这样的新手来说不是一个有用的指南)。

在 Win10 上,我安装了 Appium Desktop for Windows(当前版本 1.2.0 beta)。我安装了 Android Studio (v2.3.3) 和 Pixel 设备的图像。

我打开 Android Studio > Tools > Android > AVD Manager > Pixel API 25(使用 Android 7.1.1 和 API 25 设置)并启动模拟器。模拟器打开,我看到的第一件事是“照片已停止关闭应用程序”和一个 X。有点令人担忧,但是嘿,我从 AVD Manager 安装了图像,所以我得到了我得到的。

如果我然后转到 Appium Desktop(主机 0.0.0.0,端口 4723)并启动服务器(v1.6.5),我会得到控制台。我单击 Start New Session,然后出现设置屏幕。我在自动服务器选项卡上。我转到已保存的功能选项卡。我保存了这些设置:

注意:最后一个空条目是因为 Appium 上所需功能的删除按钮在此版本的 Appium Desktop 中无效。

我在 Appium Desktop 中单击“开始会话”。

由于模拟器已经启动,我收到错误“处理命令时发生未知的服务器端错误。原始错误:在设备上找不到包 com.android.browser

Pixel手机上有一个非常简单的浏览器,但是我不能调用它,因为我不知道它叫什么。默认情况下没有安装 Chrome 或 Firefox。如果我继续使用设备,我可以在这个基本浏览器中运行 Google 搜索,但我不知道尝试从 Appium 调用它时调用它的名称。

我正在尝试使用https://github.com/appium/appium/blob/master/docs/en/writing-running-appium/caps.md中的指导,但我迷路了,尝试的东西没有成功.

问题:浏览器叫什么,所以我可以调用它?

我为什么要这样做?我实际上想调用我在本地拥有的基本 Calculator.apk,但这也不起作用(当我指定“app”时它从未启动:“C:\android\Calculator.apk”),所以我想我应该从基本的浏览器会话开始,而不是 APK。

我用 API 26 尝试了与上面相同的方法,但也没有用。我还没有解决 APK 调用问题,但这可能是另一个问题。

非常感谢对 DC 的任何帮助。

麦克风

0 投票
2 回答
36202 浏览

java - ChromeDriver(Capabilities 功能)已弃用

我使用ChromeDriver 2.33WebDriver 3.6.0尝试设置文件下载的默认目录。

我在文档中找到了这个:

请改用 ChromeDriver(ChromeOptions)。创建一个新的 ChromeDriver 实例。这些功能将传递给 chromedriver 服务。

0 投票
1 回答
799 浏览

java - Selenium Grid Node 忽略了 Firefox 驱动程序没有的功能

我在指定驱动程序应满足的功能时遇到了问题。我需要一个浏览器实例来阻止弹出窗口。(一定有)

能力代码:

创建驱动的代码:

工作/不工作我的意思是,driver1 有弹出窗口应该被阻止,而 driver2 允许弹出窗口不应该。

与网格集线器的连接是正确的,因为驱动程序确实可以工作,但不幸的是,设置并没有按照预期的方式设置。

有人可以帮我吗?

0 投票
1 回答
2493 浏览

java - org.openqa.selenium.InvalidArgumentException:使用 DesiredCapabilities 的功能无效

我已将我的 Selenium 框架升级到最新版本。在执行代码期间,我收到以下异常:

例外:

细节:

  • 硒:3.7.1;
  • IE:3.7.0(32位驱动);
  • java.version:'1.8.0_144'。

此外,较新的版本建议driver = new InternetExplorerDriver(capabilities);已弃用。我在函数中单独设置浏览器的功能,并将其作为参数传递给驱动程序。

如何解决这个问题?

代码片段:

然后我调用我的驱动程序:

0 投票
4 回答
5453 浏览

java - alwaysMatch 中的无效功能:unhandledPromptBehavior 是布尔类型而不是字符串

我已将我的 Selenium 框架升级到最新版本。在执行代码期间,我收到以下异常

例外

细节 :

Selenium:3.7.1 IE:3.7.0(32 位驱动程序)java.version:'1.8.0_144'

自动化代码适用于我较旧的 IE 驱动程序(32 位)- 3.4.0。

请提出您的意见以解决该错误。

0 投票
1 回答
300 浏览

java - Selenium:设置通过 ip(或其他)执行的节点

我在服务器上使用带有集线器的 Selenium Grid。为了更容易调试,我想在我的特定电脑上而不是在其他节点上执行测试。(所有节点都始终在线)是否有类似 ip-capability 的东西?(所有节点运行相同的浏览器和平台等)否则我必须执行 Grid-Execution.java 和 Local-Execution.java?如果您有其他想法如何做到这一点,请告诉我!问候阿诺

0 投票
1 回答
10385 浏览

c# - DesiredCapabilities 已过时

我曾经有以下代码,以便以不同的用户身份运行驱动程序。

问题是我收到警告:DesiredCapabilities is obsolete而且我不确定我必须做什么才能保持这个工作。

有问题的行是:_webdriverIE = new RemoteWebDriver(new Uri("http://localhost:5555/"), capabilitiesInternet, TimeSpan.FromSeconds(300)); 我尝试将其更改为InternetExplorerOptions caps = new InternetExplorerOptions();. 可惜现在RemoteWebDriver 只能接受Icapabilities了。

0 投票
4 回答
8136 浏览

java - Selenium 没有检测到 IE 中的第二个窗口

我的应用程序在单击按钮时打开一个新窗口,我需要在该窗口中执行一些操作。但是 selenium webdriver 的响应 getWindowHandles() 方法中只有一个窗口 id。如果在打开新窗口后调用 getWindowHandles() 有延迟,则会发生这种情况。硒存在一个已知问题。 https://github.com/SeleniumHQ/selenium/wiki/InternetExplorerDriver#required-configuration

但即使是解决方案也不适合我。

代码如下

Set " windowHandles " 将只返回一个窗口:

但如果我取消睡眠。它将返回两个窗口 ID:

我无法删除睡眠,因为这只是一个示例程序,在实际应用程序中会有一些延迟。请让我知道你的想法。此问题仅适用于 IE11。

蓝屏 - 主页;灰屏 - 弹出

在此处输入图像描述