gpt4 book ai didi

python - 使用 python selenium 从 HTML 页面中选择项目

转载 作者:太空宇宙 更新时间:2023-11-03 20:03:57 25 4
gpt4 key购买 nike

祝您度过愉快的一天。我正试图完成我的一个街区,但我陷入了困境。我尝试过以下代码,但没有成功。只有前两个驱动程序可以工作,我的目标是在 psiToolPan div 中选择“2019 年 12 月每日报告”选项。非常感谢。

enter image description here

这是我的 block :

elements = driver.find_elements_by_class_name("smr")
for e in elements:
e.click()
elements = driver.find_elements_by_class_name("smr-more")
for e in elements:
e.click()

select_obj =
select(driver.find_element_by_xpath("//div[@class='smr']//div[@class='smr-
more']//strong[@id='psiTool']"))
select_obj.select_by_visible_text('All')

# courses_button = driver.find_element_by_name('psiTool').click()
# courses_button = driver.find_element_by_id('psiToolPan').click()
# courses_button = driver.find_element_by_id('templateList').click()

driver.find_element_by_link_text('Selecting a template').click();
# searchElem.send_keys('Daily report Dec 2019')

最佳答案

您尝试与之交互的元素位于 iframe id dashboard_iframe 内。您需要先切换到 iframe 才能访问该元素。

引发WebDriverWaitframe_to_be_available_and_switch_to_it()和引发 WebDriverWaitelement_to_be_clickable()

WebDriverWait(driver,15).until(EC.frame_to_be_available_and_switch_to_it((By.ID,"dashboard_iframe")))
WebDriverWait(driver,15).until(EC.element_to_be_clickable((By.CSS_SELECTOR,"div.smr"))).click()
WebDriverWait(driver,15).until(EC.element_to_be_clickable((By.CSS_SELECTOR,"div.smr-more"))).click()
element=WebDriverWait(driver,15).until(EC.element_to_be_clickable((By.CSS_SELECTOR,"#templateList")))
select=Select(element)
select.select_by_visible_text("Daily report Dec 2019")

导入以下库来执行上述代码。

from selenium.webdriver.support.select import Select
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

编辑:

诱导 JavaScript 执行器点击。

WebDriverWait(driver,15).until(EC.frame_to_be_available_and_switch_to_it((By.ID,"dashboard_iframe")))
elementclick=WebDriverWait(driver,15).until(EC.element_to_be_clickable((By.CSS_SELECTOR,"div.smr")))
driver.execute_script("arguments[0].click();", elementclick)
elementclick=WebDriverWait(driver,15).until(EC.element_to_be_clickable((By.CSS_SELECTOR,"div.smr-more")))
driver.execute_script("arguments[0].click();", elementclick)
element=WebDriverWait(driver,15).until(EC.element_to_be_clickable((By.CSS_SELECTOR,"#templateList")))
select=Select(element)
select.select_by_visible_text("Daily report Dec 2019")

关于python - 使用 python selenium 从 HTML 页面中选择项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59070393/

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