python-3.x - 如何获取 Javascript 生成的内容
问题描述
我目前在此(https://aca3.accela.com/MILARA/GeneralProperty/PropertyLookUp.aspx)网页上获取 javascript 生成内容的 HTML 时遇到问题。它在页面本身上生成 javascript。我想知道我做错了什么。我正在使用的代码是这样的:
import time
from selenium import webdriver
from selenium.webdriver.support.ui import Select
from selenium.webdriver import ActionChains
from selenium.webdriver.common.keys import Keys
import selenium.webdriver.support.ui as ui
from bs4 import BeautifulSoup
driver = webdriver.Chrome(executable_path="/Users/MrPete/Downloads/chromedriver_win32/chromedriver")
driver.get('https://aca3.accela.com/MILARA/GeneralProperty/PropertyLookUp.aspx')
profession = Select(driver.find_element_by_xpath('//*[@id="ctl00_PlaceHolderMain_refLicenseeSearchForm_ddlLicenseType"]'))
profession.select_by_value("Pharmacist")
time.sleep(5) # Let the user actually see something!
lName = driver.find_element_by_xpath('//*[@id="ctl00_PlaceHolderMain_refLicenseeSearchForm_txtLastName"]')
lName.send_keys('roy')
search = driver.find_element_by_xpath('//*[@id="ctl00_PlaceHolderMain_btnNewSearch"]')
search.click()
time.sleep(5)
html = driver.execute_script("return document.getElementsByTagName('table')[38].innerHTML")
print(html)
现在,我没有得到任何输出,我得到的输出是:
<tbody><tr>
<td style="white-space:nowrap;"><span class="ACA_SmLabel ACA_SmLabel_FontSize"> Showing 1-13 of 13 </span></td>
</tr>
</tbody>
这是(有点)我想要获得的表格的标题。我想要的输出是整个表格的 HTML(发布了一张由 javascript 生成的表格的图片。我目前得到的是图片顶部的小标题,“显示 1-13 13',我想要的是整张桌子。
解决方案
尝试改变
html = driver.execute_script("return document.getElementsByTagName('table')[38].innerHTML")
print(html)
至:
target = driver.find_element_by_xpath('//table[@class="ACA_GridView ACA_Grid_Caption"]')
print(target.text)
输出:
Showing 1-13 of 13
License Type
License Number
First Name
Middle Initial
Last Name
Organization Name
DBA/Trade Name
License Status
License Expiration Date
Pharmacist
5302017621
Arthur
James
等等
推荐阅读
- php - 使用 RewriteRule 在 htaccess 中出错
- json - 如何从数组中的数组中提取数据
- asp.net-core-2.0 - Asp.net 核心身份令牌生成
- corda - Corda MQ 节点错误 - 使用 p2pAddress 主机名的不正确端点的消息
- android - 如何动态更改我的 TextView?
- python - 为什么 Python 在我的打印命令中输出括号和引号?
- javascript - Javascript将多维数组转换为唯一的项目数组
- mysql - mysql中的递归sql
- java - 将 Hibernate Search 从 5.9.2 迁移到 5.10.1 时出现问题 - ClassNotFoundException: ExtendedBeanManager$LifecycleListener
- opennms - OpenNMS 20.0.0 使用仪表板角色