Форум программистов, компьютерный форум, киберфорум
C#: API, боты
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
0 / 0 / 1
Регистрация: 26.04.2020
Сообщений: 89
1

Selenium, кликнуть на всплывающее окно

10.10.2020, 20:29. Просмотров 1607. Ответов 5
Метки нет (Все метки)

Всем привет!

Использую Selenium для автоматизации, заполнения полей в веб-странице.

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

C#
1
2
3
4
5
6
7
8
9
10
public string Locality = "Название города и области";
 
var driverService = ChromeDriverService.CreateDefaultService();
driverService.HideCommandPromptWindow = true;
var driver = new ChromeDriver(driverService, new ChromeOptions());
ChromeOptions options = new ChromeOptions();
 
IWebElement RecipientLocality = driver.FindElement(By.CssSelector("#mat-input-21"));  // Номер CSS селектора
              RecipientLocality.SendKeys(Locality);        //Ввожу название города в поле
              RecipientLocality.Click();
После выполения этого кода у меня всплывает окно, с названием этого же города, которое нужно выбрать. Никак не получается это сделать..

В элементах всплывающего окна, так же имеется CSS селектор, но использовать не могу так как подсталятся в каждый раз будут разные города с областями, и в каждом всплывающее окне будет совой свой CSS-селектор.

Как выбрать всплывающее окно?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.10.2020, 20:29
Ответы с готовыми решениями:

Как кликнуть по радиокнопке используя Selenium WebDriver?
Есть две радиокнопки <input type="radio" name="rb1" value="1"> <input type="radio"...

Как кликнуть по кнопочке на сайте через Selenium WebDriver
Я новичок так что Прошу сильно не пинать! :stop: В общем хочу написать на C# и Selenium WebDriver...

Как кликнуть по элементу на сайте, который находится поверх окон Selenium C#
Здраствуйте, довольного долго изучаю Selenium, но ни как не могу найти способ, как кликнуть по...

Всплывающее меню появляется только если два раза кликнуть по кнопке
Здравствуйте ребята! Сделал меню всплывающее по клику кнопки , но оно у меня всплывает только...

5
0 / 0 / 1
Регистрация: 26.04.2020
Сообщений: 89
11.10.2020, 16:11  [ТС] 2
В данном поле решил проблему заменив локатор на имя класса.

C#
1
2
IWebElement select = driver.FindElement(By.ClassName("klass-name"));
            select.Click();

А если в поле при вводе данных, разный css selector и id используется, и при этом имя класса не получается использовать, студия пишет: OpenQA.Selenium.ElementNotInteractableException: "element not interactable".
Есть ли способ вводить данные в поле которое имеет динамические css selector и id?
0
2411 / 1866 / 337
Регистрация: 22.07.2011
Сообщений: 7,164
17.10.2020, 02:21 3
Baktery, by xpath кажется там есть , или by tagname , не суть , получаете коллекцию элементов нужного типа и по индексу выбираете интересующий экземпляр.
0
0 / 0 / 1
Регистрация: 26.04.2020
Сообщений: 89
17.10.2020, 17:57  [ТС] 4
Цитата Сообщение от sau Посмотреть сообщение
Baktery, by xpath кажется там есть , или by tagname , не суть , получаете коллекцию элементов нужного типа и по индексу выбираете интересующий экземпляр.
xpath и id там разные в зависимости от того что выбираете из всплывающего списка. Вроде получилось по имени класса, он один один и тот же при выборе нужного названия из списка.
Спасибо за ваш вариант, я бы его рассмотрел как запасной, или возможно заменил на ваш если более оптимальный.
Можете подробнее описать?
0
66 / 48 / 21
Регистрация: 14.08.2020
Сообщений: 133
17.10.2020, 18:15 5
Цитата Сообщение от Baktery Посмотреть сообщение
Можете подробнее описать?
как тут можно помочь, если даже название сайта неизвестно на котором автоматизируете действия
0
0 / 0 / 0
Регистрация: 12.10.2019
Сообщений: 15
29.10.2020, 18:03 6
xpath и id там разные в зависимости от того что выбираете из всплывающего списка. Вроде получилось по имени класса, он один один и тот же при выборе нужного названия из списка.
Спасибо за ваш вариант, я бы его рассмотрел как запасной, или возможно заменил на ваш если более оптимальный.
Можете подробнее описать?
C#
1
FindElement(By.XPath("//div[@атрибут='значение']"));
Вместо div подставить нужный тип элемента. Возьми атрибут, который не меняется и ищи по его значению. Ну, или перебором классов, да.
Как выбрать всплывающее окно?
А насколько оно всплывающее? Если это Alert, то с ними другой разговор, его не найдёшь в DOM-архитектуре.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.10.2020, 18:03

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Python + selenium как кликнуть по кнопке , если xpath постоянно меняется(проверка на кликабельность)
//*/a/span //*/a/span Два xpath , одной кнопки. Находятся оба на...

Всплывающее окно при входе на сайт (windows окно)
Как сделать чтобы при переходе на страницу появлялось такое же всплывающее окно как здесь? ...

Всплывающее окно перекрывает окно отчёта
Доброго времени суток форумчане! Помогите пожалуйста победит всплывающию окошку, сделать так чтобы...

Всплывающее окно
Добрый день, почему то не работает всплывающая форма <style type="text/css"> /* * * Ver...

Всплывающее окно
Subj. Всем доброго времени суток. Прошу помочь с нажатие на кнопку "Ок" во всплывающем...

Всплывающее окно
Добрый день! Столкнулся с такой проблемой, что никак не могу сделать или возможно не могу понять,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.