OpenQA.Selenium.ElementNotInteractableException: "element not interactable (С#) Selenium

Код:

private void login_Click(object sender, EventArgs e)
    {
        string login = textBox1.Text;
        string password = textBox2.Text;
        string steamguard = textBox3.Text;

        IWebDriver driver = new ChromeDriver();
        driver.Navigate().GoToUrl(@"https://steamcommunity.com/openid/login?openid.claimed_id=http%3A%2F%2Fspecs.openid.net%2Fauth%2F2.0%2Fidentifier_select&openid.identity=http%3A%2F%2Fspecs.openid.net%2Fauth%2F2.0%2Fidentifier_select&openid.mode=checkid_setup&openid.ns=http%3A%2F%2Fspecs.openid.net%2Fauth%2F2.0&openid.realm=https%3A%2F%2Fapi.dmarket.live&openid.return_to=https%3A%2F%2Fapi.dmarket.live%2Fauth%2Fv1%2Fcallback%2Fsteam%2F901e7d34-06c1-44b0-82b4-2f982c058361");
        
        IWebElement log = driver.FindElement(By.XPath("//*[@id=\"steamAccountName\"]"));
        IWebElement pass = driver.FindElement(By.XPath("//*[@id=\"steamPassword\"]"));
        IWebElement sign = driver.FindElement(By.XPath("//*[@id=\"imageLogin\"]"));
        IWebElement sguard = driver.FindElement(By.XPath("//*[@id=\"login_twofactor_authcode_entry\"]/div"));     

        log.SendKeys(login);
        pass.SendKeys(password);
        sign.Click();
        sguard.SendKeys(steamguard);
  }

[![введите сюда описание изображения][1]][1]

Программа почему то не может ввести текст в строку и выдает ошибку; Как можно решить эту проблему. Спасибо).

введите сюда описание изображения

Пытался решить проблему:

  private void login_Click(object sender, EventArgs e)
    {
        string login = textBox1.Text;
        string password = textBox2.Text;
        string steamguard = textBox3.Text;

        IWebDriver driver = new ChromeDriver();
        driver.Navigate().GoToUrl(@"https://steamcommunity.com/openid/login?openid.claimed_id=http%3A%2F%2Fspecs.openid.net%2Fauth%2F2.0%2Fidentifier_select&openid.identity=http%3A%2F%2Fspecs.openid.net%2Fauth%2F2.0%2Fidentifier_select&openid.mode=checkid_setup&openid.ns=http%3A%2F%2Fspecs.openid.net%2Fauth%2F2.0&openid.realm=https%3A%2F%2Fapi.dmarket.live&openid.return_to=https%3A%2F%2Fapi.dmarket.live%2Fauth%2Fv1%2Fcallback%2Fsteam%2F901e7d34-06c1-44b0-82b4-2f982c058361");
        
        IWebElement log = driver.FindElement(By.XPath("//*[@id=\"steamAccountName\"]"));
        IWebElement pass = driver.FindElement(By.XPath("//*[@id=\"steamPassword\"]"));
        IWebElement sign = driver.FindElement(By.XPath("//*[@id=\"imageLogin\"]"));
        WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10));
        IWebElement sguard = wait.Until(SeleniumExtras.WaitHelpers.ExpectedConditions.ElementExists(By.XPath("//*[@id=\"twofactorcode_entry\"]")));

        log.SendKeys(login); 
        pass.SendKeys(password);
        sign.Click();
        sguard.SendKeys(steamguard);  
}

Но не помогло.


Ответы (1 шт):

Автор решения: aepot

Ну как бы div не умеет сам по себе принимать ввод.

Ввод надо отправлять в input, который может выглядеть примерно вот так:

<input type="text" name="code">

Он скорее всего расположен внутри того самого div, на который вы указали.

→ Ссылка