Кнопка не нажимает Я использовал Javascript и синтаксис действия - PullRequest
0 голосов
/ 06 июня 2019

Я автоматически заполняю форму, после заполнения есть кнопка обновления, но она не нажимает, она просто меняет цвет.Это показывает, что у меня правильный xpath.

Я попробовал две вещи, чтобы просмотреть javascript и щелкнуть, а также код действия.Они оба работают до степени изменения цвета кнопки, но она не нажимает.Я пробовал это:

IJavaScriptExecutor executor = (IJavaScriptExecutor)driver;
executor.ExecuteScript("arguments[0].scrollIntoView(true);",element);
executor.ExecuteScript("arguments[0].click();", element);

, и я пробовал это:

Actions builder = new Actions(driver);
builder.MoveToElement(_regRep.btnUpdateOrganization)
       .Click()
       .Build()
       .Perform();

Ожидаемые результаты - просто нажмите кнопку

1 Ответ

0 голосов
/ 06 июня 2019

Это может быть случай, когда элемент не взаимодействует по своей природе (то есть, селен заполняется слишком быстро, и кнопка, которая изначально отключена, не получает соответствующее событие JavaScript, указывающее, что все обязательные поля заполнены и его можно щелкнуть )

Я бы рекомендовал использовать Явный подход ожидания , чтобы ввести класс WebDriverWait и настроить его с помощью Ожидаемые условия . После этого вы сможете использовать IWebElement.Click () метод , поэтому, если щелчок не удастся - Selenium должен сообщить вам о том, что пошло не так.

Пример использования WebDriverWait:

var clickableEmenent = (new WebDriverWait(driver, TimeSpan.FromSeconds(10)).Until(ExpectedConditions.ElementToBeClickable(element)));
clickableEmenent.Click();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...