driver.getContextHandles() 或 driver.context() 是否在 Selenium4 中被删除,因为这些方法将用于 Appium 驱动程序?
is driver.getContextHandles() or driver.context() removed in Selenium4 as these methods are coming for Appium driver?
Selenium4 中是否删除了 driver.getContextHandles() 或 driver.context(),因为这些方法将用于 Appium 驱动程序?
我正在使用 Selenium 4.1.1 和 JavaClient- 8.0.0-beta2.
运行 在 Hybrind 应用程序中进行测试时遇到查找元素的问题。
设想
Web 视图正在 App post 单击一个图标打开。元素未找到异常即将到来,而元素在 Chrome.
中是唯一的 found/identified
这方面的任何建议将有助于进一步处理。
关于driver.context()
的问题
这已移至 io.appium.java_client.remote.SupportsContextSwitching
界面,该界面还包括默认实现。
在测试中,如果您使用 AppiumDriver
,只需转换驱动程序,例如:
io.appium.java_client.remote.SupportsContextSwitching
((SupportsContextSwitching) driver).getContextHandles();
注意: 要在没有 ClassCastException
的情况下工作,驱动程序最初应创建为 AndroidDriver
或 IOSDriver
,例如:
BaseOptions options = new UiAutomator2Options().setAutoGrantPermissions(true);
AppiumDriver driver = new AndroidDriver(new URL("http://localhost:4723/wd/hub"), options);
更多详情
我提到这个,因为driver.context()
是更大上下文的特例。
appium java客户端版本 8 与版本 7 相比有很多变化。
其中之一:许多 platform-specific 和 W3C WebDriver 标准方法未定义的方法移出到其他接口。
纯AppiumDriver
没有这个方法
但是如果我们看抛出代码,例如到 AndroidDriver
,我们看到它实现了 20 多个额外的接口:
public class AndroidDriver extends AppiumDriver implements
PressesKey,
SupportsRotation,
SupportsContextSwitching,
SupportsLocation,
PerformsTouchActions,
HidesKeyboard,
HasDeviceTime,
...
IOSDriver
.
也一样
如果您在 AppiumDriver
中找不到某些方法,请尝试抛出 AndroidDriver
/ IOSDriver
正在实现的接口。
Selenium4 中是否删除了 driver.getContextHandles() 或 driver.context(),因为这些方法将用于 Appium 驱动程序? 我正在使用 Selenium 4.1.1 和 JavaClient- 8.0.0-beta2.
运行 在 Hybrind 应用程序中进行测试时遇到查找元素的问题。 设想 Web 视图正在 App post 单击一个图标打开。元素未找到异常即将到来,而元素在 Chrome.
中是唯一的 found/identified这方面的任何建议将有助于进一步处理。
关于driver.context()
这已移至 io.appium.java_client.remote.SupportsContextSwitching
界面,该界面还包括默认实现。
在测试中,如果您使用 AppiumDriver
,只需转换驱动程序,例如:
io.appium.java_client.remote.SupportsContextSwitching
((SupportsContextSwitching) driver).getContextHandles();
注意: 要在没有 ClassCastException
的情况下工作,驱动程序最初应创建为 AndroidDriver
或 IOSDriver
,例如:
BaseOptions options = new UiAutomator2Options().setAutoGrantPermissions(true);
AppiumDriver driver = new AndroidDriver(new URL("http://localhost:4723/wd/hub"), options);
更多详情
我提到这个,因为driver.context()
是更大上下文的特例。
appium java客户端版本 8 与版本 7 相比有很多变化。
其中之一:许多 platform-specific 和 W3C WebDriver 标准方法未定义的方法移出到其他接口。
纯AppiumDriver
没有这个方法
但是如果我们看抛出代码,例如到 AndroidDriver
,我们看到它实现了 20 多个额外的接口:
public class AndroidDriver extends AppiumDriver implements
PressesKey,
SupportsRotation,
SupportsContextSwitching,
SupportsLocation,
PerformsTouchActions,
HidesKeyboard,
HasDeviceTime,
...
IOSDriver
.
如果您在 AppiumDriver
中找不到某些方法,请尝试抛出 AndroidDriver
/ IOSDriver
正在实现的接口。