Selenium 错误消息 "selenium.webdriver has no attribute execute script"
Selenium error message "selenium.webdriver has no attribute execute script"
我正在使用 selenium 抓取无限滚动页面。
我正在尝试使用此代码:
import time
import pandas as np
import numpy as np
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
browser = webdriver.Chrome()
url = 'https://twitter.com/search?f=tweets&q=csubwaystats%20since%3A2018-05-28%20until%3A2018-08-28'
browser.get(url)
time.sleep(1)
SCROLL_PAUSE_TIME = 0.5
# Get scroll height
last_height = webdriver.execute_script("return document.body.scrollHeight")
while True:
# Scroll down to bottom
webdriver.execute_script("window.scrollTo(0,document.body.scrollHeight);")
# Wait to load page
time.sleep(SCROLL_PAUSE_TIME)
# Calculate new scroll height and compare with last scroll height
new_height = webdriver.execute_script("return document.body.scrollHeight")
if new_height == last_height:
break
last_height = new_height
我从多个来源获得此代码,最近的是:
How can I scroll a web page using selenium webdriver in python?
我将其更新为包含 "webdriver" 而不是 "driver" 因为我将 selenium 作为 webdriver 导入。否则它不起作用。
我的问题是,当我 运行 我得到的代码时:
AttributeError: module 'selenium.webdriver' has no attribute 'execute_script'
我不太明白这意味着什么以及如何解决它?我没能找到这方面的信息。
我是 python 的新手,所以可能遗漏了一些明显的东西,但如有任何建议,我们将不胜感激。
要使其正常工作,您必须创建一个 webdriver 实例,例如:
from selenium import webdriver
driver = webdriver.Chrome() # webdriver.Ie(), webdriver.Firefox()...
last_height = driver.execute_script("return document.body.scrollHeight")
您可以从 here
下载 Chromedriver
您还需要 add path to Chromedriver to your environment variable PATH 或者将下载的文件放入与 Python 可执行文件相同的文件夹中...
AttributeError: module 'selenium.webdriver' has no attribute 'execute_script'
您收到此错误是因为 'execute_script' 不是 class 属性 ,您不能直接使用它。因为它是一个 实例属性 你应该创建一个 class 的实例。请检查 here 了解更多关于 classes.
这现在可以正常工作,因为 'execute_script' 是 运行 作为实例属性。
last_height = browser.execute_script("return document.body.scrollHeight")
您的最终代码将如下所示:
import time
import pandas as np
import numpy as np
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
browser = webdriver.Chrome()
url = 'https://twitter.com/search?f=tweets&q=csubwaystats%20since%3A2018-05-28%20until%3A2018-08-28'
browser.get(url)
time.sleep(1)
SCROLL_PAUSE_TIME = 0.5
# Get scroll height
last_height = browser.execute_script("return document.body.scrollHeight")
while True:
# Scroll down to bottom
webdriver.execute_script("window.scrollTo(0,document.body.scrollHeight);")
# Wait to load page
time.sleep(SCROLL_PAUSE_TIME)
# Calculate new scroll height and compare with last scroll height
new_height = webdriver.execute_script("return document.body.scrollHeight")
if new_height == last_height:
break
last_height = new_height
webdriver
是模块的名称,而不是您的实例。实际上,您使用以下行将创建的实例分配给了名称 browser
:browser = webdriver.Chrome()
所以不要调用 webdriver.execute_script()
(这会给你一个 AttributeError
),你必须使用你的实例来调用它,像这样:browser.execute_script()
.
我正在使用 selenium 抓取无限滚动页面。
我正在尝试使用此代码:
import time
import pandas as np
import numpy as np
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
browser = webdriver.Chrome()
url = 'https://twitter.com/search?f=tweets&q=csubwaystats%20since%3A2018-05-28%20until%3A2018-08-28'
browser.get(url)
time.sleep(1)
SCROLL_PAUSE_TIME = 0.5
# Get scroll height
last_height = webdriver.execute_script("return document.body.scrollHeight")
while True:
# Scroll down to bottom
webdriver.execute_script("window.scrollTo(0,document.body.scrollHeight);")
# Wait to load page
time.sleep(SCROLL_PAUSE_TIME)
# Calculate new scroll height and compare with last scroll height
new_height = webdriver.execute_script("return document.body.scrollHeight")
if new_height == last_height:
break
last_height = new_height
我从多个来源获得此代码,最近的是:
How can I scroll a web page using selenium webdriver in python?
我将其更新为包含 "webdriver" 而不是 "driver" 因为我将 selenium 作为 webdriver 导入。否则它不起作用。
我的问题是,当我 运行 我得到的代码时:
AttributeError: module 'selenium.webdriver' has no attribute 'execute_script'
我不太明白这意味着什么以及如何解决它?我没能找到这方面的信息。
我是 python 的新手,所以可能遗漏了一些明显的东西,但如有任何建议,我们将不胜感激。
要使其正常工作,您必须创建一个 webdriver 实例,例如:
from selenium import webdriver
driver = webdriver.Chrome() # webdriver.Ie(), webdriver.Firefox()...
last_height = driver.execute_script("return document.body.scrollHeight")
您可以从 here
下载 Chromedriver您还需要 add path to Chromedriver to your environment variable PATH 或者将下载的文件放入与 Python 可执行文件相同的文件夹中...
AttributeError: module 'selenium.webdriver' has no attribute 'execute_script'
您收到此错误是因为 'execute_script' 不是 class 属性 ,您不能直接使用它。因为它是一个 实例属性 你应该创建一个 class 的实例。请检查 here 了解更多关于 classes.
这现在可以正常工作,因为 'execute_script' 是 运行 作为实例属性。
last_height = browser.execute_script("return document.body.scrollHeight")
您的最终代码将如下所示:
import time
import pandas as np
import numpy as np
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
browser = webdriver.Chrome()
url = 'https://twitter.com/search?f=tweets&q=csubwaystats%20since%3A2018-05-28%20until%3A2018-08-28'
browser.get(url)
time.sleep(1)
SCROLL_PAUSE_TIME = 0.5
# Get scroll height
last_height = browser.execute_script("return document.body.scrollHeight")
while True:
# Scroll down to bottom
webdriver.execute_script("window.scrollTo(0,document.body.scrollHeight);")
# Wait to load page
time.sleep(SCROLL_PAUSE_TIME)
# Calculate new scroll height and compare with last scroll height
new_height = webdriver.execute_script("return document.body.scrollHeight")
if new_height == last_height:
break
last_height = new_height
webdriver
是模块的名称,而不是您的实例。实际上,您使用以下行将创建的实例分配给了名称 browser
:browser = webdriver.Chrome()
所以不要调用 webdriver.execute_script()
(这会给你一个 AttributeError
),你必须使用你的实例来调用它,像这样:browser.execute_script()
.