2017-04-11 48 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的哪些選項。

相關問題