Rya*_*yan 5 javascript python selenium phantomjs selenium-webdriver
我PhantomJS在Python中使用Selenium Webdriver,我试图在页面上执行一段JavaScript,希望返回一段数据:
from selenium import webdriver
driver = webdriver.PhantomJS("phantomjs.cmd") # or add to your PATH
driver.set_window_size(1024, 768) # optional
driver.get('http://google.com') # EXAMPLE, not actual URL
driver.save_screenshot('screen.png') # save a screenshot to disk
jsres = driver.execute('$("#list").DataTable().data()')
print(jsres)
Run Code Online (Sandbox Code Playgroud)
但是在运行时会报告KeyError.我无法找到有关可用命令的大量文档,所以我有点卡在这里.
为执行javascript而创建的方法被调用execute_script(),而不是execute():
driver.execute_script('return $("#list").DataTable().data();')
Run Code Online (Sandbox Code Playgroud)
FYI,execute()在内部用于发送webdriver命令.
请注意,如果您想要javascript代码返回的内容,则需要使用return.
另请注意,这可能会抛出Can't find variable: $错误消息.在这种情况下,找到元素selenium并将其传递给脚本:
# explicitly wait for the element to become present
wait = WebDriverWait(driver, 10)
element = wait.until(EC.presence_of_element_located((By.ID, "list")))
# pass the found element into the script
jsres = driver.execute_script('return arguments[0].DataTable().data();', element)
print(jsres)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10851 次 |
| 最近记录: |