我正在使用 selenium 和 Appium 进行自动化测试。 我想弄清楚如何在每次测试前自动关闭 iPad 和 iPhone 设备上弹出的 Apple id 验证。
我试过写
iosDriver.SwitchTo().Alert().Dismiss()
到目前为止还没有成功。
我也见过类似的东西
driver.findElement(By.xpath("//*[@XCElementType='XCUIElementTypeButton'][3]")).click();
但我不知道如何识别“不是现在”按钮。
capabilities.SetCapability("platformName", "iOS");
capabilities.SetCapability("platformVersion", iosPlatformVersion);
capabilities.SetCapability("browserName", string.Empty);
capabilities.SetCapability("deviceName", deviceName);
capabilities.SetCapability("automationName", "XCUITest");
capabilities.SetCapability("bundleId", "com.*****.automation");
capabilities.SetCapability("udid", iphone_udid);
capabilities.SetCapability("noReset", "true");
capabilities.SetCapability("fullReset", "false");
capabilities.SetCapability("xcodeConfigFile", "/Users/******/Desktop/***.xconfig");
capabilities.SetCapability("agentPath", "/usr/local/lib/node_modules/appium/node_modules/appium-xcuitest-driver/WebDriverAgent/WebDriverAgent.xcodeproj");
capabilities.SetCapability("bootstrapPath", "/usr/local/lib/node_modules/appium/node_modules/appium-xcuitest-driver/WebDriverAgent");
capabilities.SetCapability("startIWDP", true);
capabilities.SetCapability("autoDismissAlerts", true);
string pathTo****Ipa = null; pathIpa = string.IsNullOrEmpty(path) ? ipaPath : path1;
capabilities.SetCapability("app", path);
//XCUITest
capabilities.SetCapability("waitForAppScript", "$.delay(5000); $.acceptAlert();");
IOSDriver<IOSElement> driver = new IOSDriver<IOSElement>(new Uri("http://127.0.0.1:****/**/***"), capabilities, new TimeSpan(0, 3, 0));
很想听听在这种情况下取得成功的人的意见。
在 advacne.
最佳答案
如果您只关心 iOS 的这个问题,您可以使用 $driver.find_element(name: 'Not Now')
。只需从 ruby 翻译。
或者:
$driver.find_element(predicate: "type='XCUIElementTypeButton' AND name MATCHES[cd] 'Not Now'")
<- 也在 ruby 中。
如果可以的话,我真的会避免使用 XPath - 从长远来看,它不会保持一致。
关于selenium - 自动关闭 Apple id 验证弹出窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60527261/