我需要在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()
元素滚动到页面的最底部,该页面位于叠加层的正下方。如何向上移动页面然后单击?
答案 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])