【发布时间】:2020-09-25 01:38:05
【问题描述】:
我正在尝试使用 Appium 自动化混合应用程序,该应用程序正在使用第三方支付网关,因此当用户必须使用 VISA 卡付款时,它会在 web 视图中打开他们的页面。驱动无法获取支付页面的页面源。
【问题讨论】:
-
我得到了驱动程序的URL,它显示的是应用程序的URL,而不是显示支付页面的URL,所以问题是如何让驱动程序检测到新打开的页面?
我正在尝试使用 Appium 自动化混合应用程序,该应用程序正在使用第三方支付网关,因此当用户必须使用 VISA 卡付款时,它会在 web 视图中打开他们的页面。驱动无法获取支付页面的页面源。
【问题讨论】:
我认为该应用程序正在打开另一个窗口,这就是我无法捕获它的原因,因此为了捕获它,您需要遍历所有窗口并通过检查确保当前使用的窗口是所需的窗口存在的元素。 这是C#中的代码
foreach (var Wind in Setup.driver.WindowHandles)
{
Console.WriteLine("Window name is " + item );
Setup.driver.SwitchTo().Window(item);
Console.WriteLine(Setup.driver.Url);
var Condition= Setup.driver.FindElements(By.XPath
("//button[contains(.,'Pay')]")).Count;
Console.WriteLine(x);
if (x == 1)
{
break;
}
【讨论】: