点击 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/PhantomJS/Selenium 滚动无限页面