在Safari浏览器上使用Selenium Webdriver未选择下拉列表

时间:2017-04-11 11:42:48

标签: c# selenium-webdriver safari webdriver safaridriver

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

我用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();

没有错误,只是它没有从下拉列表中选择任何值。

2 个答案:

答案 0 :(得分:0)

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

作为一种变通方法,您可以使用JavaScript和DOM API修改选择的选项。

答案 1 :(得分:0)

在此处尝试此示例以解决JS解决方法-已实现为C#扩展。此代码可在Safari上运行(已在10.1+版本上测试)。

这不是完整的代码,只是使之简单的一小段。您可以扩展它以支持您喜欢的任何功能。

<div class="innerphoto">