点击 Selenium + Python 无法滚动到视图中的链接的方式是啥?

Posted

技术标签:

【中文标题】点击 Selenium + Python 无法滚动到视图中的链接的方式是啥?【英文标题】:What is the way of clicking on links which could not be scrolled into view by Selenium + Python?点击 Selenium + Python 无法滚动到视图中的链接的方式是什么? 【发布时间】:2018-08-17 20:34:50 【问题描述】:

如果我的代码是这样的:

x=driver.find_element_by_xpath("""//*[@id="react-root"]/section/main/article/div[1]/div/div/div[1]/div[2]/a""")
x.click()

但是,发生了这个错误:

selenium.common.exceptions.ElementNotInteractableException: Message: Element <a href="/p/BgEcF34Fqf6/?tagged=fast"> could not be scrolled into view

你能帮帮我吗?

【问题讨论】:

你试过我的答案了吗? 嗨!进展如何? 【参考方案1】:

尝试 javascript 点击:

from selenium.webdriver.remote.webelement import WebElement


def javascript_click(self, locator):
    element = None
    if isinstance(locator, str):
        element = self.find_element(locator)
    elif isinstance(locator, WebElement):
        element = locator

    if element is not None:
        self._driver.execute_script("arguments[0].click();", element)
    else:
        raise Exception("Could not click on locator " + element)

【讨论】:

【参考方案2】:

我使用了这个经过仔细处理的代码:

#Scroll down the page to load more posts
    driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
    time.sleep(10)
    j=j+1

请注意,您可以通过使用 for 语法将此滚动推广到多个信誉。

【讨论】:

以上是关于点击 Selenium + Python 无法滚动到视图中的链接的方式是啥?的主要内容,如果未能解决你的问题,请参考以下文章

Python selenium 滚动条

使用 Python/PhantomJS/Selenium 滚动无限页面

Selenium/python:每次滚动后从动态加载的网页中提取文本

Selenium2+python自动化17-JS处理滚动条

Selenium2+python自动化17-JS处理滚动条

selenium+Python(Js处理浏览器滚动条)