2015-05-28 147 views
2

我一直在嘗試從網站選擇性取向在這裏:https://www.okcupid.com/但我似乎無法得到它。我用盡了一切從一下,我想在下拉用。點擊()方法的元素,然後向支持類是這個(SelectElement),像這樣:試圖選擇在硒下拉項目

driver.Navigate().GoToUrl("https://www.okcupid.com/"); 
new SelectElement(driver.FindElementByCssSelector("#orientation_dropdownContainer")).SelectByValue("2"); 

我我也嘗試過SelectbyText(),並且我嘗試了不同的元素(我認爲他們都是我認爲的),我可以考慮使用這個元素,它仍然保持默認選項,任何創意傢伙?使用Selenium - Firefox。

回答

2

選擇器似乎不對我。使用ID爲選擇元素orientation_dropdown

driver.Navigate().GoToUrl("https://www.okcupid.com/"); 
new SelectElement(_driver.FindElement(By.Id("orientation_dropdown"))).SelectByValue("2"); 

編輯

這是我所見過的最怪異的選擇清單中的一個。然而,上面的代碼將不工作,並且使用Actions類可能是有用的發現,它會工作

string option = "Gay"; 
By xPath = By.XPath("//li[contains(text(),'"+option+"')]"); 

Actions actions = new Actions(_driver); 
actions.MoveToElement(_driver.FindElement(By.Id("orientation_dropdown_chosen"))).Click().Build().Perform(); 
_driver.FindElement(xPath).Click(); 
+0

當我回到我的辦公桌時,我會嘗試它,並標記答案,如果它適合我​​:)。我同意,儘管我已經和Selenium合作過很多,並且HTML和CSS很棒(我是一個webdesigner),所以這是我見過的最奇怪的方法之一。謝謝你! – Frank

0
  • 首先選擇下拉,然後通過值或索引 -

    Select drpdown = new Select(driver.findElement(By.xpath("Locator of the dropdown")); drpdown.SelectByValue("Value mentioned in the DOM");

  • 選擇
  • 如果 「財報」 是一個可見的文本,然後

    drpdown.selectByVisibleText("visible text of the value");