尝试在Selenium的下拉列表中选择项目

时间:2015-05-28 01:59:54

标签: c# selenium drop-down-menu selenium-webdriver webdriver

我一直试图从网站上选择性取向:https://www.okcupid.com/但我似乎无法得到它。我已经尝试了所有的东西,从点击我想要的元素到下拉的.Click()方法,然后到支持类( SelectElement ),如下所示:

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

我也尝试过SelectbyText(),我尝试了不同的元素(老实说,我认为所有这些),我可以考虑使用这个,它仍然保留在默认选项,任何想法家伙?使用Selenium - Firefox。

2 个答案:

答案 0 :(得分:3)

选择器对我来说似乎不对。使用id作为select元素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();

答案 1 :(得分: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");