如何向上滚动,然后单击Selenium和python

时间:2018-04-16 22:50:33

标签: python selenium-webdriver

我需要在python中使用selenium单击一个按钮。这就是我所拥有的:

read_more_buttons = responses[0].find_elements_by_class_name("read-more")
            if len(read_more_buttons) > 0:
                read_more_buttons[0].click()

它大部分时间都可以正常工作,但有时候页面底部会有一个覆盖层,不能被忽略。因此我会收到此错误:

[element] is not clickable at point (665.7333145141602,883.4666748046875) because another element <div class="raq-module js-raq-module"> obscures it

我尝试在调用click()之前使用此代码向下滚动页面:

driver.execute_script("window.scrollTo(0, " + str(read_more_buttons[0].location["y"] + 120) + ")") 

但是,我仍然收到同样的错误。似乎通过调用.click()元素滚动到页面的最底部,该页面位于叠加层的正下方。如何向上移动页面然后单击?

1 个答案:

答案 0 :(得分:2)

那些dang叠加!

在此,让我们尝试使用JS 滚动到视图,然后 点击

read_more_buttons = responses[0].find_elements_by_class_name("read-more")
if len(read_more_buttons) > 0:
    driver.execute_script("arguments[0].scrollIntoView(true);", read_more_buttons[0])
    driver.execute_script("arguments[0].click()", read_more_buttons[0])