在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();
没有错误,只是它没有从下拉列表中选择任何值。
答案 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">