【发布时间】:2017-05-08 22:58:10
【问题描述】:
我已经在网页中编写了参数并通过选择应用按钮来应用它们。 1. 使用以下命令为框架外的 Web 元素单击应用按钮 browser1.find_element_by_name("action").click()
- 使用相同命令将参数保存在网页框架内时,应用按钮未单击 browser1.find_element_by_name("action").click()
【问题讨论】:
标签: python-3.x selenium
我已经在网页中编写了参数并通过选择应用按钮来应用它们。 1. 使用以下命令为框架外的 Web 元素单击应用按钮 browser1.find_element_by_name("action").click()
【问题讨论】:
标签: python-3.x selenium
你需要切换到 iframe
首先你需要找到 iframe 然后切换到它然后点击
driver.switch_to_frame(driver.find_element_by_tag_name("iframe"))
或者你可以使用 xpath 来定位元素
driver.find_element_by_xpath("//iframe[]")
【讨论】:
我不知道 Python 语法,但在 Selenium 中,您必须切换到框架,就像在执行单击之前切换到新选项卡或窗口一样。
Java 中的语法是:driver.switchTo().frame();
【讨论】:
正如其他人所说:
WebDriverWait(driver, 10).until(EC.frame_to_be_available_and_switch_to_it((By.XPATH,"//iframe[]"))) #elements are in a iframe, have to select it first
如果它有可能不会立即显示,您可能需要构建此等待功能。 告诉 python 等待最多 10 秒,直到帧可用并立即切换到它。我使用 Xpath 来追踪 iframe
不知道你有多新,所以提供以下导入:
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
此解决方案的功劳归于@Andersson Finding xpaths on pages running script 在那里给他点赞。
找不到重复的报告按钮。这篇文章的标题比上面提到的问题更容易找到。 (完全披露,链接到我自己的问题之一)
【讨论】: