Selenium在c#中使用webdriver选择下拉选项

时间:2016-05-20 01:03:43

标签: c# selenium automation

我正在尝试点击下拉选项选项并过滤结果。但是,我似乎无法确定语法。

网址=" http://themeforest.net/item/realsite-material-real-estate-wordpress-theme/full_screen_preview/10917194"

地点的下拉菜单选择:' Palo Alto'

我的尝试如下:

driver.FindElement(By.XPath("//div[@id='cover_widget-2']/div[3]/div/div/form/div/div/div/div/div/ul/li[3]/a")).Click();

driver.FindElement(By.XPath("//button[@type='submit']")).Click();

它说该元素不存在,但我无法弄清楚语法。

我似乎做错了什么?

2 个答案:

答案 0 :(得分:0)

  1. 下拉列表和按钮元素位于iframe名称“preview-frame”中。您必须在找到元素之前切换到iframe。
  2. 您必须单击下拉列表,然后选择列表中的项目
  3. 下面的代码显示了如何从标签位置找到下拉列表和列表元素。

    driver.SwitchTo().Frame(driver.FindElement(By.Name("preview-frame")));
    IJavaScriptExecutor jse = (IJavaScriptExecutor)driver;
    jse.ExecuteScript("window.scrollBy(0,400)", "");
    driver.FindElement(By.XPath("//label[contains(.,'Location')]/../div/button")).Click();
    System.Threading.Thread.Sleep(1000);
    driver.FindElement(By.XPath("//label[contains(.,'Location')]/../div/div/ul/li/a[contains(.,'Palo Alto')]")).Click();
    driver.FindElement(By.XPath("//button[@type='submit']")).Click();
    

答案 1 :(得分:0)

要从下拉列表中选择一个选项,以下也可以...

driver.FindElement(By.XPath(“xpath here”))。点击();

driver.FindElement(By.id(“your id”))。点击();