C# 无法使用selenium chromedriver单击下拉项
我无法单击下拉项 我在: 我可以使用下面的代码单击“代理位置”选项,但无法从下拉列表中选择任何项目C# 无法使用selenium chromedriver单击下拉项,c#,selenium,selenium-webdriver,C#,Selenium,Selenium Webdriver,我无法单击下拉项 我在: 我可以使用下面的代码单击“代理位置”选项,但无法从下拉列表中选择任何项目 driver.FindElement(By.XPath("/html/body/main/div[2]/form/fieldset/div[2]/div[1]/p")).Click(); 如何从下拉列表中单击德国或美国选项 我尝试了下面的代码,但没有成功 var dd = driver.FindElement(By.XPath("/html/body/main/div[2]/form/field
driver.FindElement(By.XPath("/html/body/main/div[2]/form/fieldset/div[2]/div[1]/p")).Click();
如何从下拉列表中单击德国或美国选项
我尝试了下面的代码,但没有成功
var dd = driver.FindElement(By.XPath("/html/body/main/div[2]/form/fieldset/div[2]/div[1]/p")).Click();
var select = new SelectElement(dd);
select.SelectByValue(" Germany");
如果不知道下拉菜单使用的逻辑,就很难提供适合您的代码。但我可以马上看出它不是一个select标记,SelectByValue对它不起作用 这就是事情变得糟糕的地方,你必须使用动作链。您必须找到包含所需文本的子元素,然后单击它
dropdown = driver.FindElement(By.XPath("/html/body/main/div[2]/form/fieldset/div[2]/div[1]/p"))
actions = webdriver.ActionChains(driver)
actions.click(dropdown)
// var childSelection = // Logic to find child elements of dropdown
actions.click(childSelection).perform();
你可以做:
Select dropdown = new SelectElement(driver.findelement(By.id("dropdown")));
dropdown.selectByVisibleText("Germany"); or dropdown.selectByIndex(2);
进一步阅读可能会有所帮助:
Germany
(代码的最后一行)前面的空格是故意的还是错误的?您需要添加相关的html。此外,所使用的xpath对于任何微小的UI更改都是脆弱的。