execute_script() 在使用 selenium phantomjs 的 python 中不起作用

execute_script() doesn't work in python with selenium phantomjs

from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.common.exceptions import NoSuchElementException
from selenium.webdriver.common.keys import Keys
from bs4 import BeautifulSoup

driver = webdriver.PhantomJS()
#driver = webdriver.Firefox()
driver.get('http://global.ahnlab.com/site/securitycenter/securityinsight/securityInsightList.do')
driver.execute_script("getView('2218')")

html_source = driver.page_source
driver.quit()

soup = BeautifulSoup(html_source)

print(soup.h1.string)

当我使用Firefox()时,结果是我想要的[AhnLab连续第四年出现在RSAConference上]。 但是当我使用 PhanthomJS() 时,结果是我不想要的 [Security Insight]。

如果我使用PhantomJS(),我得不到我想要的结果? 我想使用无头浏览器获得第一个结果。

谢谢。

phantomjs 驱动程序未在 javascript 调用后立即加载导航。只需在 javascript 调用后休眠 5-10 秒,它应该适合你。

import time

from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.common.exceptions import NoSuchElementException
from selenium.webdriver.common.keys import Keys
from bs4 import BeautifulSoup

driver = webdriver.PhantomJS()
#driver = webdriver.Firefox()
driver.get('http://global.ahnlab.com/site/securitycenter/securityinsight/securityInsightList.do')
driver.execute_script("getView('2218')")

# Introduce a sleep of 5 seconds here
time.sleep(5)

html_source = driver.page_source
driver.quit()

soup = BeautifulSoup(html_source)

print(soup.h1.string)