c# - 如何使用 Selenium WebDriver C# 从下拉列表中选择一个选项?

标签 c# webdriver selenium-webdriver

我正在尝试为我的网络测试选择一个选项。可以在此处找到示例:http://www.tizag.com/phpT/examples/formex.php

除了选择选项部分外,一切都很好。如何按值或按标签选择选项?

我的代码:

using OpenQA.Selenium.Firefox;
using OpenQA.Selenium;
using System.Collections.ObjectModel;
using System.Text.RegularExpressions;
using System.Threading;
using System.Diagnostics;
using System.Runtime.InteropServices;

class GoogleSuggest
{
    static void Main()
    {
        IWebDriver driver = new FirefoxDriver();

        //Notice navigation is slightly different than the Java version
        //This is because 'get' is a keyword in C#
        driver.Navigate().GoToUrl("http://www.tizag.com/phpT/examples/formex.php");
        IWebElement query = driver.FindElement(By.Name("Fname"));
        query.SendKeys("John");
        driver.FindElement(By.Name("Lname")).SendKeys("Doe");
        driver.FindElement(By.XPath("//input[@name='gender' and @value='Male']")).Click();
        driver.FindElement(By.XPath("//input[@name='food[]' and @value='Chicken']")).Click();
        driver.FindElement(By.Name("quote")).Clear();
        driver.FindElement(By.Name("quote")).SendKeys("Be Present!");
        driver.FindElement(By.Name("education")).SendKeys(Keys.Down + Keys.Enter); // working but that's not what i was looking for
        // driver.FindElement(By.XPath("//option[@value='HighSchool']")).Click(); not working
        //  driver.FindElement(By.XPath("/html/body/table[2]/tbody/tr/td[2]/table/tbody/tr/td/div[5]/form/select/option[2]")).Click(); not working
        // driver.FindElement(By.XPath("id('examp')/x:form/x:select[1]/x:option[2]")).Click(); not working

        }
}

最佳答案

您必须从下拉列表中创建一个选择元素对象。

 using OpenQA.Selenium.Support.UI;

 // select the drop down list
 var education = driver.FindElement(By.Name("education"));
 //create select element object 
 var selectElement = new SelectElement(education);

 //select by value
 selectElement.SelectByValue("Jr.High"); 
 // select by text
 selectElement.SelectByText("HighSchool");

更多信息 here

关于c# - 如何使用 Selenium WebDriver C# 从下拉列表中选择一个选项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5278281/

相关文章:

java - 很难专注于 Selenium 中新打开的窗口

python - Selenium headless browser webdriver [Errno 104] Connection reset by peer

c# - 处理@@Identity 时转换无效

c# - TextBlock.Text 更新 ViewModel 和 CodeBehind WPF

c# - 使用 Knockout 从 <select> 填充文本框

java - Selenium2 中的 FirefoxDriver 是否有经过验证的 mouseOver 解决方法?

java - seleniumexecuteScript 在 IE 上挂起

c# - WCF/LINQ to SQL 中的序列化

selenium - webdriver-manager 更新命令第一次总是失败,但之后会通过

javascript - Selenium WebDriverJS,无法为 Chrome 构建 webdriver