POMを使用してセレンでドロップダウンリストから要素値を選択する

私はウェブサイトに登録する簡単なテストをしようとしています – https://www.midomi.com/
。私はc#とセレニウムを使用していますが、ページオブジェクトモデルを使用してドロップダウンリストから値を選択することに固執しています。私のプロジェクトには、彼女のホームページと登録ページの2つのクラスを持つテストクラスとページオブジェクトフォルダが含まれています。

登録ページ:ここでは、ドロップダウンリストから値を選択するコードを実装する際に問題が発生しています

namespace MidomiRegisterPOM.PageObject
{
class RegisterPage
{
    private IWebDriver driver;

    //type your email
    [FindsBy(How = How.Id, Using = "email")]
    [CacheLookup]
    public IWebElement Email { get; set; }

    //type your username
    [FindsBy(How = How.Id, Using = "username")]
    [CacheLookup]
    public IWebElement UserName { get; set; }

    //type your password
    [FindsBy(How = How.Id, Using = "password")]
    [CacheLookup]
    public IWebElement Password { get; set; }

    //confirm your password
    [FindsBy(How = How.Id, Using = "confirm_password")]
    [CacheLookup]
    public IWebElement ConfirmPassword { get; set; }

    //here select from dropdown list your birth day, month and year       

    //mark privacy notice checkbox
    [FindsBy(How = How.Id, Using = "tos_pp")]
    [CacheLookup]
    public IWebElement PrivacyNotice { get; set; }

    //click Continue button
    [FindsBy(How = How.Id, Using = "submitLink")]
    [CacheLookup]
    public IWebElement ContinueButton { get; set; }

    public RegisterPage(IWebDriver driver)
    {
        this.driver = driver;
        PageFactory.InitElements(driver, this);
    }
    public void RegisterToSite()
    {
        Email.SendKeys("[email protected]

I'm trying this but got error: enter image description here

電子メール、ユーザー名、パスワードフィールドを選択しているように[FindsBy]で選択する方法はありますか?ありがとう

POMを使用しないで私のコードはここにあります:

    var birthMonth = driver.FindElement(By.Id("birth_month"));
    var selectMonth = new SelectElement(birthMonth);
    selectMonth.SelectByValue("5");

ベストアンサー

必要な図書館をすべて揃えましたか?

using OpenQA.Selenium.Support.UI;

var birthMonth = driver.FindElement(By.Id("birth_month"));
var selectMonth = new SelectElement(birthMonth);
selectMonth.SelectByValue("5");

または1行で:

new SelectElement(driver.FindElement(By.Id("birth_month"))).SelectByValue("5);

返信を残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です