[英]Selenium can't seem to find and click a button on website? - Python
[英]Python selenium can not find the click button
我正在尝试使用此代码单击 javascript 按钮。 在第一帧中,您可以找到内容,但是当我将自己置于第二个 html 中时,没有菜单。
我如何点击按钮?
代码试验:
driver.switch_to.default_content()
driver.find_element_by_tag_name('frameset')
driver.switch_to_frame(1)
driver.find_element_by_tag_name('html')
print(driver.page_source)
driver.find_element_by_tag_name('frameset')
driver.switch_to_frame(1)
driver.find_element_by_tag_name('html')
print(driver.page_source)
<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /> </head><frameset cols="170px,100%" framespacing="0" border="0" frameborder="0"> <frame scrolling="no" name="menu" id="menu" src="menu.jsp" /> <frame scrolling="yes" name="main" id="main" src="main.jsp" /> </frameset>
由于所需元素位于多个<iframe>
因此您必须:
您可以使用以下解决方案:
代码块:
from selenium import webdriver from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.common.by import By WebDriverWait(driver, 10).until(EC.frame_to_be_available_and_switch_to_it((By.XPATH,"//frame[contains(@src, 'login')]"))) WebDriverWait(driver, 10).until(EC.frame_to_be_available_and_switch_to_it((By.XPATH,"//frame[@id='menu' and @name='menu'][contains(@src, 'menu')]"))) WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.PARTIAL_LINK_TEXT, "squeda Avanzada"))).click()
在这里你可以找到关于Ways to deal with #document under iframe的相关讨论
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.