как обрабатывать элемент не взаимодействует исключение в селене c # - PullRequest
0 голосов
/ 14 октября 2019

Код веб-элемента:

<div class="form_field form_field--has_error sc-fBuWsC bNcPjv"
    <input id="temporaryEmail" autocomplete="false" name="temporaryEmail" class="sc-hzDkRC gHYxbL" value=""/>
    <label for="temporaryEmail" class="sc-jhAzac heNtmJ">
        Email Address 
    </label> 
</div>

мой код водителя

public IWebElement emailfield => Driver.FindElement(By.XPath("//input[@id='temporaryEmail']"));

Если я просто использую: emailfield.SendKeys(signUpCredentials.emailAddress);, я получаюошибка Необработанное исключение: OpenQA.Selenium.ElementNotInteractableException: 'element not interactable'

Если я использую:

((IJavaScriptExecutor)Driver).ExecuteScript("$('document.querySelector(#temporaryEmail'))", emailfield); 
emailfield.SendKeys(signUpCredentials.emailAddress);

Я получаю ошибку Необработанное исключение: OpenQA.Selenium.WebDriverException: 'javascript error: Unexpected token ')' (Session info: chrome=77.0.3865.120)'

Ответы [ 2 ]

0 голосов
/ 15 октября 2019

Попробуйте использовать ниже через Javascript Executor

((IJavaScriptExecutor)Driver).ExecuteScript("document.querySelector('#temporaryEmail')", emailfield); 
0 голосов
/ 14 октября 2019

В результате проблема была связана с HTML-кодом на странице - по запросу //input[@id='temporaryEmail'] было найдено несколько элементов, поэтому нам пришлось написать более конкретный XPath, чтобы найти правильный элемент.

// wait for element to exist

// find the element
var email = Driver.FindElement(By.XPath("//input[following-sibling::label[text()='Email Address']]"));

// click the element to activate it
email.Click();

// send keys
email.SendKeys(signUpCredentials.emailAddress);

Этот скрипт успешно выполнен на моем конце и заполнил поле 'Email' некоторым текстом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...