#python-3.x #selenium-webdriver
Вопрос:
Я пытаюсь прокрутить сообщения о заданиях вниз, используя нижеприведенные строки, но иногда это даст правильные результаты для прокрутки вниз до конца, а иногда и нет.
html = driver.find_element_by_tag_name('html')
time.sleep(5)
html.send_keys(Keys.END)
Кто-нибудь может подсказать мне, как прокрутить страницу до конца, пожалуйста, найдите ссылку и скриншот ниже.
https://www.google.com/search?q=upsc jobs in indiaamp;rlz=1C1CHBF_enIN869IN869amp;oq=upsc joamp;aqs=chrome.1.69i57j0i433i512j0i131i433i512j0i512l3j0i131i433i512l2j0i512j0i433i512amp;sourceid=chromeamp;ie=UTF-8amp;ibp=htl;jobsamp;sa=Xamp;sqi=2amp;ved=2ahUKEwjR27GN_qPzAhX4ppUCHb_0B_QQkd0GegQIORAB#fpstate=tldetailamp;sxsrf=AOaemvIxuJXh3if0tw7ezZfjkXRe5DSxsA:1632911697417amp;htivrt=jobsamp;htidocid=N1_BNfzt8n8auXjGAAAAAA==
Ответ №1:
Чем больше вы прокручиваете, тем больше данных вы получаете, в основном это динамичный веб-сайт. Я жестко 50
закодировал как фиктивное число, у вас может быть 100 или любое другое число, если на то пошло.
Вы можете использовать пример кода :
driver = webdriver.Chrome(driver_path)
driver.maximize_window()
driver.implicitly_wait(30)
driver.get("https://www.google.com/search?q=upsc jobs in indiaamp;rlz=1C1CHBF_enIN869IN869amp;oq=upsc joamp;aqs=chrome.1.69i57j0i433i512j0i131i433i512j0i512l3j0i131i433i512l2j0i512j0i433i512amp;sourceid=chromeamp;ie=UTF-8amp;ibp=htl;jobsamp;sa=Xamp;sqi=2amp;ved=2ahUKEwjR27GN_qPzAhX4ppUCHb_0B_QQkd0GegQIORAB#fpstate=tldetailamp;sxsrf=AOaemvIxuJXh3if0tw7ezZfjkXRe5DSxsA:1632911697417amp;htivrt=jobsamp;htidocid=N1_BNfzt8n8auXjGAAAAAA==")
j = 1
for i in range(50):
element = driver.find_element(By.XPATH, f"(//div[@role='heading'])[{j}]")
driver.execute_script("arguments[0].scrollIntoView(true);", element)
j = j 1
Ответ №2:
Вы также можете попробовать прокрутить это до конца.
driver.get("https://www.google.com/search?q=upsc jobs in indiaamp;rlz=1C1CHBF_enIN869IN869amp;oq=upsc joamp;aqs=chrome.1.69i57j0i433i512j0i131i433i512j0i512l3j0i131i433i512l2j0i512j0i433i512amp;sourceid=chromeamp;ie=UTF-8amp;ibp=htl;jobsamp;sa=Xamp;sqi=2amp;ved=2ahUKEwjR27GN_qPzAhX4ppUCHb_0B_QQkd0GegQIORAB#fpstate=tldetailamp;sxsrf=AOaemvIxuJXh3if0tw7ezZfjkXRe5DSxsA:1632911697417amp;htivrt=jobsamp;htidocid=N1_BNfzt8n8auXjGAAAAAA==")
i = 0
try:
while True:
options = driver.find_elements_by_xpath("//div[@role='treeitem']")
driver.execute_script("arguments[0].scrollIntoView(true);",options[i])
i =1
time.sleep(.5)
except:
pass
Комментарии:
1. Действительно ли есть конец ? Я попробовал вручную, и данные продолжали поступать..
2. @cruisepandey — Ну, я видел конец, поэтому предложил этот код.