2017-10-11 50 views
0

ページの左側にあるリストのいくつかのページを反転する必要がありますhere。最初にそれを行うには、特定のdivセクションをスクロールしてからnextボタンをクリックする必要があります。しかし、スクロールは1つのケース(url_ok)で完璧に動作し、別の(url_trouble)では動作しません。理由が分からない。 私がテストしているコード:Selenium Python:divをスクロールする方法

from selenium import webdriver 
import time 
driverPath = "C:/Program Files (x86)/Google/Chrome/Application/chromedriver.exe" 
driver = webdriver.Chrome(driverPath) 

url_trouble = 'https://2gis.ru/moscow/search/%D0%BF%D0%B0%D1%80%D0%BA%D0%BE%D0%B2%D0%BA%D0%B0%20/tab/geo?queryState=center%2F37.644653%2C55.827709%2Fzoom%2F12' 

url_ok = 'https://2gis.ru/moscow/search/%D0%BF%D0%B0%D1%80%D0%BA%D0%BE%D0%B2%D0%BA%D0%B0%20/tab/firms?queryState=center%2F37.644653%2C55.827805%2Fzoom%2F12' 


def click(url, driver): 
    driver.get(url) 
    driver.maximize_window() 
    time.sleep(5) 
    next_link_data = driver.find_element_by_css_selector("div.pagination__arrow._right") 
    next_link_data.location_once_scrolled_into_view 
    next_link_data.click() 

click(url_trouble, driver) # it doesn't work 
click(url_ok, driver) # it works 

をそこで質問が下にurl_troubleをスクロールする方法ですか?

ありがとうございます!

答えて

0

私は2つの「div.pagination__arrow._right」がページにあると思います。

に> "#モジュール-1-13-1-1-2-2> div.pagination__arrow._right" -

使用、より具体的なセレクタ
はこれを試してみてください

driver.find_element_by_css_selector("#module-1-13-1-1-2-2 > div.pagination__arrow._right") 
+0

ありがとう@DexJ、それは完璧に動作します! – Vlad

+0

あなたは大歓迎です@Vlad – DexJ

関連する問題