这些策略无法找到元素:By.id; OpenQA.Selenium.WebdriverTimeoutExceltpion:1秒后超时

时间:2019-05-17 12:34:00

标签: c# macos selenium-webdriver visual-studio-mac safaridriver

我已经在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上完全一样地工作。如果有人可以提供解决方案,那对我来说可能会节省很多时间。提前感谢。干杯!

0 个答案:

没有答案