我试图在尝试单击它之前进行等待元素。如果我不等待,我的测试因NoSuchElementException
失败。现在,我正在等待文本,但我希望能够等待accessibilityId
。我注意到accessibilityId
不是By
中的选项。我该如何处理?
_driver = new AndroidDriver<IWebElement>(new Uri("http://127.0.0.1:4723/wd/hub"),capability);
var wait = new WebDriverWait(_driver,new TimeSpan(0,0,0,15));
wait.Until(ExpectedConditions.ElementIsVisible(
By.XPath("//android.widget.TextView[@text='Bypass Sign In (Testing Only)']")));
_driver.FindElementByXPath("//android.widget.TextView[@text='Bypass Sign In (Testing Only)']").Click();;
更新:我注意到有一个手机级课程,其中有一个策略以供可访问性ID,但是当我尝试使用nosuchelementException立即实现等待时,我的测试就会失败。一旦我使用XPATH等待了足够长的时间,然后单击_driver.FindByAccctibilityId,它似乎可以识别该按钮并单击它。
下面的代码失败。
'var wait = new WebDriverWait(_ driver,new Timespan(0,0,0,45((;
wait.Until(ExpectedConditions.ElementIsVisible(MobileBy.AccessibilityId("Button_SignIn")));
_driver.FindElementByAccessibilityId("Button_SignIn").Click();'
工作代码
`var wait = new WebDriverWait(_driver, new TimeSpan(0, 0, 0, 45));
wait.Until(ExpectedConditions.ElementIsVisible(
By.XPath("//android.widget.TextView[@text='Bypass Sign In (Testing Only)']")));
_driver.FindElementByAccessibilityId("Button_SignIn").Click();`
我刚刚弄清楚C#中有一个移动性类,其可访问性定位器可作为by Type可用,但它并没有真正做到我期望它对