【问题标题】:function for switching frames in python, seleniumpython, selenium中用于切换帧的函数
【发布时间】:2015-04-27 16:33:57
【问题描述】:

我正在寻找一种可以更轻松地在两个帧之间切换的功能。现在,每次我需要在帧之间切换时,我都通过以下代码来做到这一点:

driver.switch_to.frame(driver.find_element_by_css_selector("frame[name='nav']"))

driver.switch_to.frame(driver.find_element_by_css_selector("frame[name='content']"))

我的目标是获得一个函数,该函数接受一个参数来更改导航或内容,因为其余部分基本相同。

我已经尝试过的是:

def frame_switch(content_or_nav):
x = str(frame[name=str(content_or_nav)] #"frame[name='content_or_nav']"
driver.switch_to.frame(driver.find_element_by_css_selector(x))

但它给了我一个错误

 x = str(frame[name=str(content_or_nav)]
                  ^

SyntaxError: 无效语法

【问题讨论】:

    标签: python selenium webdriver frame


    【解决方案1】:

    按照这种方式编写,它试图将 CSS 代码解析为 Python 代码。你不想这样。

    此功能适用:

    def frame_switch(css_selector):
      driver.switch_to.frame(driver.find_element_by_css_selector(css_selector))
    

    如果你只是想切换到基于name属性的框架,那么你可以使用这个:

    def frame_switch(name):
      driver.switch_to.frame(driver.find_element_by_name(name))
    

    要切换回主窗口,您可以使用

    driver.switch_to.default_content()
    

    【讨论】:

    • 不客气!继续并点击接受(复选标记),如果有帮助,可以选择给予支持:)
    • 不能投票,因为我首先需要 15 个声望,否则我会 ;)
    • 可以用命令完成切换回主窗口吗?
    • 是的@NamGVU,有! driver.switch_to.default_content()
    • 成功了。从我做自动化测试的网络上有隐藏的框架。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-29
    • 2016-09-29
    • 1970-01-01
    相关资源
    最近更新 更多