Selenium Webdriver未执行JavaScript
我正试图从Aliexpress产品页面中获取数据 我需要(交易历史记录) 我的代码:Selenium Webdriver未执行JavaScript,javascript,python,html,selenium,selenium-webdriver,Javascript,Python,Html,Selenium,Selenium Webdriver,我正试图从Aliexpress产品页面中获取数据 我需要(交易历史记录) 我的代码: from selenium.webdriver.chrome.options import Options from selenium import webdriver my_url = 'https://www.aliexpress.com/item/Cosmetic-Brush-Makeup-Blusher-Eye-Shadow-Kabuki-Brushes-Set-Tool-Kit-22pcs/32765
from selenium.webdriver.chrome.options import Options
from selenium import webdriver
my_url = 'https://www.aliexpress.com/item/Cosmetic-Brush-Makeup-Blusher-Eye-Shadow-Kabuki-Brushes-Set-Tool-Kit-22pcs/32765190537.html?ws_ab_test=searchweb0_0'
chrome_options = Options()
chrome_options.add_argument("--enable-javascript")
driver = webdriver.Chrome(chrome_options=chrome_options)
driver.get(my_url)
innerHTML = driver.execute_script('return document.getElementsByTagName("html")[0].innerHTML')
page_html = driver.page_source
当我跑的时候
document.getElementsByTagName(“html”)[0].innerHTML
在chrome控制台上,我得到了整个html,包括我需要的部分。
但是,innerHTML对象为我提供了与driver.page_源代码相同的html(没有我需要的部分)
据我所知,本节不在iFrame下
请提供一些帮助:-)您可能需要查找此特定表格。 使用 innerHTML=document.queryselectoral('table.transaction feedback table')
可能会发现它在元素ID
j-transaction-feedback
可见后生成事务,您必须滚动到元素并等待Ajax请求完成
from selenium.webdriver.support.ui import WebDriverWait
....
....
driver.get(my_url)
# scroll to the element
driver.find_element_by_css_selector('#j-transaction-feedback').location_once_scrolled_into_view
# wait until Ajax finished and render the element
transaction = WebDriverWait(driver, 15).until(
lambda d: d.find_element_by_css_selector('.transaction-feedback-content')
)
total_transaction = driver.find_element_by_css_selector('#j-transaction-feedback .text')
page_source = driver.page_source
print('total_transaction: ' + total_transaction.text)