问题标签 [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.
python - 在 Selenium webdriver 中应用代理网关
我的目标是在 Selenium webdriver 中应用代理网关(例如 geosurf.io)。
- 我需要通过使用DesiredCapabilities来做到这一点,因为似乎DesiredCapabilities是插入代理 [gateway] ( source ) 的唯一方法。
- DesiredCapabilities功能在 Selenium Grid 中工作(不仅仅是在普通的 Selenium 服务器中)。硒网格文档。
因此,我编写了以下代码来为 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)
:
为什么它不包含sessionId
key-value ?
更新 2
我的部分成功是跑步
作为脚本的最后一行。它产生了以下错误:
将代理地址更改为localhost:8080
带来了同样的错误......
更新 3
我已成功在浏览器http://192.168.43.98:5566/wd/hub/static/resource/hub.html上手动启动/打开节点控制台
无法成功为此网格加载 FireFox 或 IE 10 浏览器会话:
我不知道如何管理外部代理插入的网格节点是否有帮助。
java - 在 Selenium 3 中获取操作系统信息和 Firefox 浏览器版本
我正在升级到 Selenium 3,它破坏了我很久以前编写的从WebDriver
实例中检索操作系统和浏览器信息的函数。
这用于获取浏览器版本和操作系统名称:
它不再起作用了。我得到浏览器版本的空字符串和操作系统名称的“任何”。我正在使用第三方工具来管理驱动程序二进制文件:
这就是我创建驱动程序实例的方式:
这与我的 Selenium 2 代码没有太大区别。唯一的区别是使用来自 3rd 方工具的驱动程序管理器,因为现在使用 Firefox 需要 geckodriver。
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 的任何帮助。
麦克风
java - ChromeDriver(Capabilities 功能)已弃用
我使用ChromeDriver 2.33
并WebDriver 3.6.0
尝试设置文件下载的默认目录。
我在文档中找到了这个:
请改用 ChromeDriver(ChromeOptions)。创建一个新的 ChromeDriver 实例。这些功能将传递给 chromedriver 服务。
java - Selenium Grid Node 忽略了 Firefox 驱动程序没有的功能
我在指定驱动程序应满足的功能时遇到了问题。我需要一个浏览器实例来阻止弹出窗口。(一定有)
能力代码:
创建驱动的代码:
工作/不工作我的意思是,driver1 有弹出窗口应该被阻止,而 driver2 允许弹出窗口不应该。
与网格集线器的连接是正确的,因为驱动程序确实可以工作,但不幸的是,设置并没有按照预期的方式设置。
有人可以帮我吗?
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);
已弃用。我在函数中单独设置浏览器的功能,并将其作为参数传递给驱动程序。
如何解决这个问题?
代码片段:
然后我调用我的驱动程序:
java - alwaysMatch 中的无效功能:unhandledPromptBehavior 是布尔类型而不是字符串
我已将我的 Selenium 框架升级到最新版本。在执行代码期间,我收到以下异常
例外:
细节 :
Selenium:3.7.1 IE:3.7.0(32 位驱动程序)java.version:'1.8.0_144'
自动化代码适用于我较旧的 IE 驱动程序(32 位)- 3.4.0。
请提出您的意见以解决该错误。
java - Selenium:设置通过 ip(或其他)执行的节点
我在服务器上使用带有集线器的 Selenium Grid。为了更容易调试,我想在我的特定电脑上而不是在其他节点上执行测试。(所有节点都始终在线)是否有类似 ip-capability 的东西?(所有节点运行相同的浏览器和平台等)否则我必须执行 Grid-Execution.java 和 Local-Execution.java?如果您有其他想法如何做到这一点,请告诉我!问候阿诺
c# - DesiredCapabilities 已过时
我曾经有以下代码,以便以不同的用户身份运行驱动程序。
问题是我收到警告:DesiredCapabilities is obsolete
而且我不确定我必须做什么才能保持这个工作。
有问题的行是:_webdriverIE = new RemoteWebDriver(new Uri("http://localhost:5555/"), capabilitiesInternet, TimeSpan.FromSeconds(300));
我尝试将其更改为InternetExplorerOptions caps = new InternetExplorerOptions();
. 可惜现在RemoteWebDriver
只能接受Icapabilities
了。
java - Selenium 没有检测到 IE 中的第二个窗口
我的应用程序在单击按钮时打开一个新窗口,我需要在该窗口中执行一些操作。但是 selenium webdriver 的响应 getWindowHandles() 方法中只有一个窗口 id。如果在打开新窗口后调用 getWindowHandles() 有延迟,则会发生这种情况。硒存在一个已知问题。 https://github.com/SeleniumHQ/selenium/wiki/InternetExplorerDriver#required-configuration
但即使是解决方案也不适合我。
代码如下
Set " windowHandles " 将只返回一个窗口:
但如果我取消睡眠。它将返回两个窗口 ID:
我无法删除睡眠,因为这只是一个示例程序,在实际应用程序中会有一些延迟。请让我知道你的想法。此问题仅适用于 IE11。
蓝屏 - 主页;灰屏 - 弹出