【发布时间】:2017-04-11 11:42:47
【问题描述】:
在 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();
不会抛出任何错误,只是它没有从下拉列表中选择任何值。
【问题讨论】:
-
是时间问题吗?也许 Mac 上的 Safari 很慢。在
SelectElement行上放置一个断点,然后单步执行。它有效吗?如果是这样,您需要添加一些等待。 -
如果在你做完所有事情之后它仍然不起作用,那么使用 sendKeys 来选择可见文本怎么样。
-
@GaurangShah 试过了,但是下一行代码没有执行
-
@RohitN。不执行是什么意思?它跳过了吗?有没有抛出异常?
-
@Gaurang 无一例外只是跳过了代码执行,但这只会发生在 safari 浏览器上,其余的都可以正常工作,即使 Mac OS 上的 chrome 浏览器也可以正常运行
标签: c# selenium-webdriver safari webdriver safaridriver