【问题标题】:click() method not working inside a frame in selenium pythonclick() 方法在 selenium python 的框架内不起作用
【发布时间】:2017-05-08 22:58:10
【问题描述】:

我已经在网页中编写了参数并通过选择应用按钮来应用它们。 1. 使用以下命令为框架外的 Web 元素单击应用按钮 browser1.find_element_by_name("action").click()

  1. 使用相同命令将参数保存在网页框架内时,应用按钮未单击 browser1.find_element_by_name("action").click()

【问题讨论】:

标签: python-3.x selenium


【解决方案1】:

你需要切换到 iframe

首先你需要找到 iframe 然后切换到它然后点击

driver.switch_to_frame(driver.find_element_by_tag_name("iframe"))

或者你可以使用 xpath 来定位元素

driver.find_element_by_xpath("//iframe[]")

【讨论】:

  • 你不知道我有多高兴,你解决了我的问题!非常感谢
【解决方案2】:

我不知道 Python 语法,但在 Selenium 中,您必须切换到框架,就像在执行单击之前切换到新选项卡或窗口一样。

Java 中的语法是:driver.switchTo().frame();

【讨论】:

    【解决方案3】:

    正如其他人所说:

     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 在那里给他点赞。

    找不到重复的报告按钮。这篇文章的标题比上面提到的问题更容易找到。 (完全披露,链接到我自己的问题之一)

    【讨论】:

      猜你喜欢
      • 2023-03-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-14
      • 1970-01-01
      • 1970-01-01
      • 2020-06-02
      • 1970-01-01
      相关资源
      最近更新 更多