我已经在VS2017中使用C#和PageObjects中的Selenium Webdriver编写了一个自动化框架。在Windows中绝对可以正常工作。 VS2017在MAC OS中使用了相同的PageObjects代码,并且在
下无法正常工作OpenQA.Selenium.NoSuchElementException:通过以下策略无法找到元素:By.Id:userNameInput;
--------> OpenQA.Selenium.WebDriverTimeoutException:1秒后超时
我已将代码从Windows的VS2017迁移到Mac的VS2017。即成功转换并编译。出现了问题,但是我已经解决了与webdriver相关的问题,现在代码可以完美地启动Chrome和Safari。但是,每当我尝试查找元素时,就会发生异常。我已经实现了Explicitwaits和其他参数,但是Safari和Chrome都在寻找元素的某个阶段给了我错误。我也尝试过查找没有POM的元素,但是那也行不通。
考虑到我已从Dynamics CRM向注销用户编写的以下功能
public void UserSignOut(ref ExtentTest test)
{
WDEx.SwitchWindows(0);
Browser.Driver.SwitchTo().DefaultContent();
UserIcon.Click();
SignOut.Click();
}
其中 UserIcon是
[FindsBy(How = How.Id, Using = @"navTabButtonChangeProfileImageLink")]
public IWebElement UserIcon { get; set; }
“登出”为
[FindsBy(How = How.Id, Using = "navTabButtonUserInfoSignOutId")]
private IWebElement SignOut { get; set; }
它应该与在带有VS2017的Windows Chromedriver上完全一样地工作。如果有人可以提供解决方案,那对我来说可能会节省很多时间。提前感谢。干杯!