我一直试图从网站上选择性取向:https://www.okcupid.com/但我似乎无法得到它。我已经尝试了所有的东西,从点击我想要的元素到下拉的.Click()方法,然后到支持类( SelectElement ),如下所示:
driver.Navigate().GoToUrl("https://www.okcupid.com/");
new SelectElement(driver.FindElementByCssSelector("#orientation_dropdownContainer")).SelectByValue("2");
我也尝试过SelectbyText(),我尝试了不同的元素(老实说,我认为所有这些),我可以考虑使用这个,它仍然保留在默认选项,任何想法家伙?使用Selenium - Firefox。
答案 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");