#perl #iframe #selenium-webdriver
#perl #iframe #selenium-webdriver
Вопрос:
В настоящее время я автоматизирую взаимодействие с веб-сайтом, на котором есть iframes. Некоторые элементы также без идентификаторов, и они не находятся в одной иерархии. Я хочу щелкнуть по <a> </a>
тегу, но не могу этого сделать. Также читайте сообщения о том, как это сделать на Java, но в Perl нет ничего, что могло бы вернуться к содержимому по умолчанию (или я не нашел).
Кто-нибудь, имеющий опыт работы с этим или имеющий какие-либо ссылки на любой сайт, объясняющий это, был бы очень полезен. Пожалуйста, обратите внимание, что я реализую это в Perl с использованием Selenium:: Chrome.
Комментарии:
1. Перекрестный пост, уже ответил на perlmonks.com/?node_id=1174446
Ответ №1:
Найдите iframe, затем переключитесь на iframe и используйте xpath для поиска iframe:-
e.g. //iframe[@class="value of class"]
$element = $driver->find_element('coolestWidgetEvah','id');
$driver->switch_to_frame('frameName');
Позвольте мне угадать, как переключиться на содержимое по умолчанию в perl:
$driver->switch_to_frame('defaultcontent');
переключение на содержимое по умолчанию — это проверка работы Java перед использованием.
Ответ №2:
При надлежащем исследовании я могу ответить на свой запрос. Для переключения на фрейм мы можем использовать следующие два варианта:
- Переключение на фрейм с использованием его идентификатора:
$driver->switch_to_frame(‘frame_id’);
- Переключение на фрейм с использованием xpath к фрейму:
$driver->switch_to_frame($driver->find_element_by_xpath(«.//*[@id=’id1′]/div[2]/div/iframe»));
- Есть возможность переключиться на фрейм, используя номер фрейма, но в случае сайтов, имеющих два множества фреймов, становится сложно подсчитать количество.
Примечание: Мы можем работать с веб-элементами, присутствующими во фрейме, только при переключении на фрейм.
Теперь, чтобы вернуться к фрейму по умолчанию, используйте:
$driver->switch_to_frame();