2015-05-28 103 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");