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

标签 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。

最佳答案

选择器对我来说似乎是错误的。使用 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();

关于c# - 尝试在 Selenium 的下拉列表中选择项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30495987/

相关文章:

c# - C# 代码插入错误时回滚

c# - 使用 LINQ2SQL 进行延迟加载的最简单方法

c# - 如何将枚举泛型类型的变量转换为 int 并返回

cakephp - cakePHP 中的下拉选择

c# - 根据单词列表搜索短语列表并计算出现次数

javascript - 使用 Selenium 步骤定义从 CucumberJS 执行回调

java - driver.getPageSource() 将符号 < 转换为 <

java - 如何使用 webdriver 增加 HTML 表格列宽

c# - 如何在数据库中已有图像之前插入图像

javascript - 当用户单击可配置产品中的下拉菜单时弹出消息?