ドロップダウンリストでオプションを選択できません。 .Select
またはSelectElement
ですが、そのようなオプションはありません。
サンプルコード:
IWebDriver ffbrowser = new FirefoxDriver();
ffbrowser.Navigate().GoToUrl("http://www.Amazon.com/");
ffbrowser.Manage().Window.Maximize();
Thread.Sleep(500);
IWebElement ddl = ffbrowser.FindElement(By.Name("url"));
int numofitems = ddl.FindElements(By.TagName("option")).Count;
for (int i = 1; i < numofitems; i++)
{
ffbrowser.select("TagName = option", "index = i");
}
「ffbrowser.select」の「select」はエラーとして報告されます。
エラー1 'OpenQA.Selenium.IWebDriver'には 'select'の定義が含まれておらず、タイプ 'OpenQA.Selenium.IWebDriver'の最初の引数を受け入れる拡張メソッド 'select'が見つかりません(usingディレクティブまたはアセンブリ参照?)
私のプロジェクト参照にはSelenium.WebDriverBackedSelenium
、Thoughtworks.Selenium.Core
、WebDriver
、WebDriver.Support
そして、私が持っています
using NUnit.Framework;
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
using OpenQA.Selenium.Firefox;
using OpenQA.Selenium.IE;
using OpenQA.Selenium.Support.UI;
使用しているSelenium WebDriverのバージョンに応じて、OpenQA.Selenium.Support.UI
に含まれるSelectElement
クラスを使用できます。
例えば:
SelectElement selector = new SelectElement(element);
selector.SelectByIndex(1);
elementはドロップダウンボックスです。
ドロップダウンリスト内のすべてのアイテムを取得し、ドロップダウンリストからアイテムを選択する方法をよりわかりやすく説明する例を次に示します。
ドロップダウンリストのサンプルHTMLコード
<select>
<option>Milk</option>
<option>Coffee</option>
<option>Tea</option>
</select>
以下のコードは、上のドロップダウンリストからすべてのアイテムを取得し、アイテム「Coffee」を選択します。コードのロジックは次のとおりです。
手順1. Web要素タグのインターフェイスを作成します手順2. Web要素タグのすべての子要素でIListを作成します手順3.ドロップリスト項目「コーヒー」を選択します
using System;
using System.Collections.Generic;
using OpenQA.Selenium;
using OpenQA.Selenium.Firefox;
using OpenQA.Selenium.Support.UI;
namespace SeleniumTests
{
class DropDownListSelection
{
static void Main(string[] args)
{
IWebDriver driver = new FirefoxDriver();
driver.Navigate().GoToUrl("http://DropDownList.html");
IWebElement element = driver.FindElement(By.XPath("//Select"));
IList<IWebElement> AllDropDownList = element.FindElements(By.XPath("//option"));
int DpListCount = AllDropDownList.Count;
for (int i = 0; i < DpListCount; i++)
{
if (AllDropDownList[i].Text == "Coffee")
{
AllDropDownList[i].Click();
}
}
Console.WriteLine(DpListCount);
Console.ReadLine();
}
}
}
以下も使用できます。
new SelectElement(driver.FindElement(By.Id("")).SelectByText(""));
または:
new SelectElement(driver.FindElement(By.Id("")).SelectByValue(""));
以下の簡単なサンプルコードを使用します。
String Input="Value to Select";
String xPathVal="@["id=Samplexpath"]";
IWebElement TargetElement = driver.FindElement(By.XPath(xPathVal));
SelectElement dropdown = new SelectElement(TargetElement);
dropdown.SelectByText(Input.Trim());
これは完璧に機能します...
SelectElement selector = new SelectElement(element);
selector.SelectByIndex(1);
要素がドロップダウンボックスであるところ。