2017-04-11 49 views
3

在Safari浏览器中,我需要从下拉列表中选择一个选项,但有趣的是,它适用于除Mac OS上的Safari之外的所有浏览器。 我正在使用Safari 10.0.3和selenium webdriver 3.3.0版本在Safari浏览器上未使用Selenium Webdriver选择下拉菜单

我已经用C#编写了代码。请参阅下面的代码 -

IWebDriver driver; 
    driver = new SafariDriver(); 
    List<string> handles = driver.WindowHandles.ToList<string>(); 
    driver.SwitchTo().Window(handles.First()); 
    driver.Navigate().GoToUrl("https://myip/MyPage.aspx"); 
    SelectElement element = new SelectElement(driver.FindElement(By.Id("securityQuestion"))); 
    int totalOptions = element.Options.Count; 
    Random rnd = new Random(); 
    int rndValue = rnd.Next(1, totalOptions); 
    element.SelectByIndex(rndValue); // This is not working for Safari browser  
    driver.FindElement(By.Id("securityAnswer")).SendKeys("test"); 
    driver.FindElement(By.Id("ctl00_Content_btnNext")).Click(); 
    driver.Close(); 

不引发错误只是它不选择从下拉菜单中的任意值。

+0

它是一个时间问题?也许Safari上的Mac很慢。在“SelectElement”行上放置一个断点,然后逐步完成。它工作吗?如果是这样,你需要添加一些等待。 – JeffC

+0

如果在你做的所有事情之后它不起作用,那么使用sendKeys来通过可见文本进行选择怎么样。 –

+0

@GaurangShah尝试过,但接下来的代码行不会执行 –

回答

0

这是一个safaridriver错误。修复程序位于WebKit中,并在此处进行跟踪: https://bugs.webkit.org/show_bug.cgi?id=174710

作为解决方法,您可以修改使用JavaScript和DOM API选择select的哪些选项。

相关问题