试图 select 项目在硒下拉

Trying to select item in drop down in Selenium

我一直在尝试 select 来自此处网站的性取向:https://www.okcupid.com/ 但我似乎无法理解。我已经尝试了所有方法,从使用 .Click() 方法在下拉列表中单击我想要的元素,然后到为此提供的支持 class (SelectElement ) 像这样:

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

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

selector 对我来说似乎是错误的。为 select 元素使用 id orientation_dropdown

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

编辑

这是我见过的最奇怪的 select 列表之一。但是,上面的代码将不起作用,发现使用 Actions class 可能很有用,它会起作用

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();
  • 首先 select 下拉,然后 select 按值或索引-

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

  • 如果"Earning Report"是一个可见的文本那么

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