Как я могу нажимать на случайную ссылку на данной веб-странице, используя selenium API для python. ? Я использую python 2.7. ThanksНажмите на произвольную ссылку на веб-странице, используя selenium API для python
ответ
find_elements_by_tagname(), безусловно, работать. Существует и другой вариант. Вы можете использовать find_elements_by_partial_link_text, где вы можете передать пустую строку.
>>> from selenium import webdriver
>>> from random import randint
>>> driver = webdriver.Firefox()
>>> driver.get('http://www.python.org')
>>> links = driver.find_elements_by_partial_link_text('')
>>> l = links[randint(0, len(links)-1)]
>>> l.click()
@ спасибо. Это помогло. Я использовал ** метод выбора ** для получения случайного элемента списка, например. 'l = выбор (ссылки)' после импорта ** выбор ** из ** случайного ** модуля – user1264304
Как насчет создания списка всех доступных ссылок на странице, а затем щелчка по случайному элементу из этого списка?
list = driver.find_elements_by_tagname("a")
list[random.Random(0, len(list)].click()
(я надеюсь, что, как вы используете случайным образом в Python 2.7, я пользователь питона 3,3, извините)
driver = webdriver.Firefox()
driver.get('https://www.youtube.com/watch?v=hhR3DwzV2eA')
# store the current url in a variable
current_page = driver.current_url
# create an infinite loop
while True:
try:
# find element using css selector
links = driver.find_elements_by_css_selector('.content-link.spf-link.yt-uix-sessionlink.spf-link')
# create a list and chose a random link
l = links[randint(0, len(links) - 1)]
# click link
l.click()
# check link
new_page = driver.current_url
# if link is the same, keep looping
if new_page == current_page:
continue
else:
# break loop if you are in a new url
break
except:
continue
Создание списка работ, но если у вас возникли проблемы, как мне использовать этот код, если вы получаете тайм-аута ошибка или ваш WebDriver не последовательно нажав на ссылку.
В качестве примера я использовал видео YT. Предположим, вы хотите щелкнуть рекомендованное видео с правой стороны, ну, у него есть уникальный селектор css для этих ссылок.
Причина, по которой вы хотите создать бесконечный цикл, - это b/c, когда при составлении списка элементов по какой-то причине python не выполняет хорошую работу, выражая сохраненные элементы. Убедитесь, что у вас есть «все», кроме «b/c», вы получите ошибки таймаута и т. Д., И вы хотите заставить его нажать на случайную ссылку.
Почему вам нужно щелкнуть случайную ссылку? Где ценность в этом? – Arran
@Arran полезен для задачи автоматического создания трафика – user1264304