当前位置: 首页 > 面试题库 >

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

和谦
2023-03-14
问题内容

我正在寻找一种功能,可以更轻松地在两个帧之间切换。现在,每次需要在帧之间切换时,我都会通过以下代码进行操作:

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']"))

我的目标是获得一个仅接受参数即可更改nav或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()


 类似资料:
  • 问题内容: 我正在寻找一种功能,可以更轻松地在两个帧之间切换。现在,每次需要在帧之间切换时,我都会通过以下代码进行操作: 我的目标是获得一个仅接受参数即可更改nav或content的函数,因为其余的基本相同。 我已经尝试过的是: 但这给我一个错误 SyntaxError:语法无效 问题答案: 编写方式就是尝试将CS​​S代码解析为Python代码。你不要那样 此功能适合: 如果您只是尝试根据属性切

  • 问题内容: 我正在尝试使用Selenium,Python和BS4在iframe中访问iframe 在返回的文本中,似乎还有两个iframe。我将如何访问那些?我尝试上面的代码没有成功。 问题答案: 将返回到文档顶部。发生的事情是您切换到第一个,然后又切换回文档的顶部,然后尝试查找第二个。硒找不到第二个,因为它在第一个之内。 如果删除第二个,则应该没问题:

  • 问题内容: 正如教程向我展示的那样,我已经在最初的几个脚本上构建了一个不错的GUI,但是没有一个脚本解决更复杂的程序的问题。 如果在打开屏幕上有带有“开始菜单”的内容,并且在用户选择后移动到程序的其他部分并适当地重画屏幕,那么执行此操作的优雅方法是什么? 是否只是一个“开始菜单”框架,然后创建一个新的窗口小部件,并填充另一部分的小部件?并在他们按下“后退”按钮时逆转此过程? 问题答案: 一种方法是

  • 问题内容: 我有一个自定义操作,可以通过切换某些iFrame来查找元素。它使用以下本地操作: 当前,我每次都切换回默认内容,然后再切换到确切的iframe。 现在,我需要通过执行以下计划来提高其性能: 检查当前内容/框架 如果这样,则无需切换 如果然后切换为默认值(如果再次切换则无需切换) 如果是,则切换为默认设置,然后切换至框架。 所以我现在需要的就是获取当前帧。有什么办法可以得到它吗? 问题答

  • 问题内容: 我正在尝试使用Selenium,Python和BS4在iframe中访问iframe 在返回的文本中,似乎还有两个iframe。我将如何访问这些?我尝试上面的代码没有成功。 问题答案: 将返回到文档顶部。发生的事情是,您切换到第一个,切换回文档的顶部,然后尝试查找第二个。硒找不到第二个,因为它在第一个之内。 如果删除第二个,则应该没问题:

  • 我正在使用Python进行selenium自动化项目。 我面临一个问题,这是处理多个浏览器窗口。 场景如下所示。当我单击主页上的链接时,将打开一个新窗口。在新打开的窗口中,我无法执行任何操作,因为焦点仍然在主页web驱动程序上。 谁能告诉我如何将焦点从背景窗口转换到新打开的窗口? 一种可能的解决方案是,但它需要窗口的名称。如何找出窗口的名字?如果这是一个错误的方法,谁能给出一些代码例子来执行这个操