Я не могу щелкнуть элемент из-за раскрывающегося меню, скрывающего все остальные элементы.
Используя Selenium в Visual Studio, я пытаюсь создать тестовый сценарий, в котором я сначала нажимаю на флажок в раскрывающемся меню, а затем нажимаю на другой элемент вне раскрывающегося списка. Однако раскрывающееся меню не закрывается после того, как вы щелкнули первый флажок.
Если вы закрываете это раскрывающееся меню вручную в веб-браузере, вам нужно всего лишь нажать клавишу Esc или просто щелкнуть где-нибудь за пределами раскрывающегося меню. Но когда я пытаюсь автоматизировать это, это не работает.
Я пытался нажать клавишу Esc, как это в скрипте:
Actions action = new Actions(driver);
action.SendKeys(OpenQA.Selenium.Keys.Escape);
Но это не работает. Он не отправляет ошибку об отправке клавиши Esc, а отправляет тайм-аут в следующей строке при попытке щелкнуть скрытый элемент:
OpenQA.Selenium.ElementClickInterceptedException : Element <div class="mat-radio-outer-circle"> is not clickable at point (116,608) because another element <div class="cdk-overlay-backdrop cdk-overlay-transparent-backdrop cdk-overlay-backdrop-showing"> obscures it
Я также попытался вместо отправки клавиши Esc щелкнуть вне выпадающего меню следующим образом:
wait.Until(ExpectedConditions.ElementIsVisible(By.XPath("//div[3]/div[3]"))).Click();
Это не работает в Visual Studio, но работает в Selenium IDE, просто используя команду click и устанавливая //div[3]/div[3]
в качестве цели.
Селен IDE Пример
Я попытался использовать функцию выбора в IDE для определения других элементов, не включенных в раскрывающееся меню. Я также пытался использовать Firebug. Но это единственный элемент, который можно активировать за пределами выпадающего меню.
Firebug view
Подведем итог:
Скажите, пожалуйста, неверен ли мой код для отправки "Esc".
Почему Visual Studio не может распознать и щелкнуть //div[3]/div[3]
, т. Е. За пределами раскрывающегося списка, когда это возможно сделать в Selenium IDE?
Есть ли другой способ закрыть выпадающее меню?
Я читал, что вы всегда можете нажать на элементы, которые скрыты с помощью javascript, но я не нашел руководства, как это сделать в C #. Скажите, пожалуйста, ребята, знаете ли вы, как это сделать.