与弹出的可拖动窗口进行交互时遇到一些困难。 运行以下代码后,将显示一个窗口,我可以进行一些自定义。我试图单击出现的取消全选按钮。
from selenium import webdriver
from selenium.common.exceptions import TimeoutException
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.ui import Select
from selenium.webdriver.support.ui import WebDriverWait
driver.get("https://stats.oecd.org/Index.aspx?DataSetCode=HOUSE_PRICES#")
try:
customize = WebDriverWait(driver, delay).until(EC.presence_of_element_located((By.ID, "customize-icon")))
print("Customizing")
except TimeoutException:
print("Loading took too much time!")
selection = driver.find_element_by_id("customize-menu-0")
menu = driver.find_element_by_id("customize-menu-3")
Hover = ActionChains(driver).move_to_element(customize).move_to_element(selection).move_to_element(menu)
driver.execute_script("arguments[0].click()", menu)
我已经尝试过切换警报和切换到弹出功能,但我觉得此网站上显示的内容不是弹出窗口或警报。
任何有关访问“弹出式”自定义菜单并与之交互的帮助将不胜感激。 谢谢!
编辑: 似乎在HTML中,弹出表/窗口称为iframe,并且它还有另一个html标签,其中包含所有内容。 iframe包含在ui小部件中,因此我无法直接切换到iframe。
答案 0 :(得分:0)
是的,它有效:)
添加到上面的代码中,并直接引用iframe ID:
driver.switch_to.frame("DialogFrame")
driver.find_element_by_id("lbtnClear_all").click()
我可以访问“取消全选”项,然后单击它。