C# 如何选择此类表单中的选项?
我正在尝试在MS表单中填充一些值,比如用于测试,输入[type=text]很好,我可以选择它并使用SendKeys(),但是在有选项列表的地方,如下图,它不是常规的HTML选择,所以我不知道如何在那里设置选项。我该怎么做?我试过这个: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
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
类型标记,seleniumSelect
方法,如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']")));