gpt4 book ai didi

python - 当我在 selenium 中使用 Click() 时,页面中的动态元素(表格)没有更新,所以我无法检索新数据

转载 作者:行者123 更新时间:2023-12-04 08:25:49 26 4
gpt4 key购买 nike

我需要从中抓取数据的页面 :Digikey Search result
问题
每个表只允许显示 100 行,所以我必须使用 NextPageButton 在多个表之间移动.
正如下面的代码所示,我确实这样做了,但是 results每次第一个表格结果时都会检索给我,并且不会在我的单击操作中移至下一个表格结果 ActionChains(driver).click(element).perform() .
请记住,没有打开新页面,单击将被某种 JavaScript 拦截以在同一页面上执行一些丰富的 UI 内容以加载新的数据表
我的期望
我只是想验证我是否可以移动到下一个表,然后我将编辑代码以遍历所有这些。
这段代码应该从结果中返回第二个表中的数据,但它实际上返回最初使用 URL 加载的第一个表中的值。这意味着点击操作没有发生或实际上发生了,但 网络驱动 driver内容不会通过与页面中的动态 JavaScript 元素交互来更新。
我将不胜感激任何帮助,谢谢..

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support.expected_conditions import presence_of_element_located
from selenium.webdriver import ActionChains
import time
import sys


url = "https://www.digikey.com/en/products/filter/coaxial-connectors-rf-terminators/382?s=N4IgrCBcoA5QjAGhDOl4AYMF9tA"

chrome_driver_path = "..PATH\\chromedriver"
chrome_options = Options()
chrome_options.add_argument ("--headless")

webdriver = webdriver.Chrome(
executable_path= chrome_driver_path
,options= chrome_options
)


with webdriver as driver:
wait = WebDriverWait(driver, 10)
driver.get(url)
wait.until(presence_of_element_located((By.CSS_SELECTOR, "tbody")))

element = driver.find_element_by_css_selector("button[data-testid='btn-next-page']")
ActionChains(driver).click(element).perform()
time.sleep(10) #too much time i know, but to make sure it is not a waiting issue. something needs to be updated

results = driver.find_elements_by_css_selector("tbody")

for count in results:
countArr = count.text
print(countArr)
print()

driver.close()

最佳答案

终于找到了解决方案!
Source的解决方案。
正如预期的那样,问题出在点击操作本身。如解决方案 Source 中所示,不知何故没有正确完成或根本没有完成题。
解决方案是使用 Javascript 执行单击按钮。
更改第 30 行ActionChains(driver).click(element).perform()如下:

driver.execute_script("arguments[0].click();",element)
就是这样..

关于python - 当我在 selenium 中使用 Click() 时,页面中的动态元素(表格)没有更新,所以我无法检索新数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65269372/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com