用于在python、selenium中切换帧的函数

用于在python、selenium中切换帧的函数,python,selenium,webdriver,frame,Python,Selenium,Webdriver,Frame,我正在寻找一个功能,使它更容易在两个帧之间切换。现在,每当我需要在帧之间切换时,我都会通过以下代码进行切换: 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']")) 我的目标是得到一个函数,它只需要一个参数来更改导航或内

我正在寻找一个功能,使它更容易在两个帧之间切换。现在,每当我需要在帧之间切换时,我都会通过以下代码进行切换:

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:无效语法

按照编写方式,它试图将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,有<代码>驱动程序。切换到默认内容()它起作用了。从我做自动化测试的网页上可以看到隐藏的框架。