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

标签 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();

只是没有从下拉列表中选择任何值,不会抛出任何错误。

最佳答案

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

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

关于c# - 在 Safari 浏览器上使用 Selenium Webdriver 未选择下拉列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43344938/

相关文章:

c# - linq-to-sql 查询结果到 c# 字典 - 如何

c# - TimeZone.IsAmbigouslyTime,为什么它对于 GMT 模糊时间失败?

selenium - 如何使用 Selenium 从选择下拉列表中检索选项的值?

java - 系统让我返回到上一页,而不是转到下一页,甚至没有单击 'Next' 或 'Back' 按钮

html - 使用鼠标的 CSS 滚动捕捉在 Safari 中不起作用,但在 Firefox 和 Chrome 中起作用

html - Safari Mobile Multi-Line <Select> aka GWT Multi-Line ListBox

ios - 当我们尝试使用 Appium 脚本导航到 iPhone safari 浏览器中的框架时,获取异常阻止了具有原点的框架

c# - Aforge.net 相机捕获并将图像保存到目录

c# - PowerShell - 从对象方法中写入进度

java - org.openqa.selenium.remote.UnreachableBrowserException 如何定义EXE路径?