C# 如何选择此类表单中的选项?

C# 如何选择此类表单中的选项?,c#,selenium-webdriver,firefox,windows-10,C#,Selenium Webdriver,Firefox,Windows 10,我正在尝试在MS表单中填充一些值,比如用于测试,输入[type=text]很好,我可以选择它并使用SendKeys(),但是在有选项列表的地方,如下图,它不是常规的HTML选择,所以我不知道如何在那里设置选项。我该怎么做?我试过这个: IWebDriver driver; // assume assigned IWebElement ele = driver.FindElement(By.XPath("//div[title='Select your a

我正在尝试在MS表单中填充一些值,比如用于测试,输入[type=text]很好,我可以选择它并使用SendKeys(),但是在有选项列表的地方,如下图,它不是常规的HTML选择,所以我不知道如何在那里设置选项。我该怎么做?我试过这个:

        IWebDriver driver; // assume assigned
        IWebElement ele = driver.FindElement(By.XPath("//div[title='Select your answer']"));
        ele.FindElement(By.XPath("//span[text()='Bahamas']")).Click();
但这会挂起应用程序


下拉列表可以通过选择类进行处理

SelectElement oSelect = new SelectElement(driver.FindElement(By.XPath("//div[title='Select your answer']")));

oSelect.selectByText("Andorra");
或按索引

//keep in mind that the index starts from 0, not from 1

    oSelect.SelectByIndex(3);
或者通过Html值属性

oSelect.SelectByValue("Andorra");

有关选择的更多信息,可以找到选项,因为它不是您不能使用的
Select
类型标记,selenium
Select
方法,如
byIndex
ByValue
等。处理此类下拉列表的最佳方法是使用
JavaScriptExecutor

// Click on dropdown field so that options will be available for select. Note in few cases this step wont be necessary
   driver.FindElement(By.XPath("//div[title='Select your answer']")).Click();
   IJavaScriptExecutor executor = (IJavaScriptExecutor)driver;
//Click on option you want to select
executor.ExecuteScript("arguments[0].click();",driver.FindElement(By.XPath("//span[text()='Bahamas']")));