Python Selenium webdriver—在我安装的浏览器上执行';我目前在

Python Selenium webdriver—在我安装的浏览器上执行';我目前在,python,selenium,selenium-webdriver,webdriver,robotframework,Python,Selenium,Selenium Webdriver,Webdriver,Robotframework,因此,我正在Firefox webdriver中使用Robot框架运行一些测试。 在这些测试中,我需要做如下操作: from selenium import webdriver from robot.api.deco import keyword from robot.libraries.BuiltIn import BuiltIn from SeleniumLibrary import SeleniumLibrary @keyword('Refresh Page Menu') def r

因此,我正在Firefox webdriver中使用Robot框架运行一些测试。 在这些测试中,我需要做如下操作:

from selenium import webdriver 
from robot.api.deco import keyword
from robot.libraries.BuiltIn import BuiltIn
from SeleniumLibrary import SeleniumLibrary


@keyword('Refresh Page Menu')
def refresh_page():
        # create webdriver object 
        driver = webdriver.Firefox() 
        driver.get("https://mytest.html") 
        # write script 
        script = "navigateTodiagram(305)"
       # generate a alert via javascript 
        driver.execute_script(script) 
问题是,我目前正在对Robot框架进行测试,如何在web上做到这一点。 而不是打开一个新的浏览器? 我想在进行测试的浏览器上执行_脚本(“navigateTodiagram(305)”

有人有什么想法吗?
非常感谢

阅读硒库的文档-这里有一个关键字,正是这个


selenium不支持该工作流。是否要编写自己的JavaScript并在当前selenium会话中执行它?@JaSON如果这样做有效,我可以做到是的,我从未使用过JavaScript tho。你对如何实施有什么想法吗?或者任何有帮助的文档?非常感谢谢谢,这很有效:)你知道如果我这样做,我是否可以得到命令的结果吗?是的,将输出分配给一个变量-例如,
${my var}=Execute Javascript navigateTodiagram(305)
谢谢你的快速回复,我注意到:)但不可能将该输出变量用作:`Execute Javascript navigateTodiagram(${my var})`,是吗?这种情况也是可能的;当您将
${my var}
放入js函数参数中时,您应该想一想-那里应该是什么类型?如果函数采用数字,并且变量的值始终为int/float,则
navigateTodiagram(${my var})
将起作用,RF将放置
${my var}
变量的数值。但是如果函数需要一个字符串,那么您应该用引号将其括起来,这样它才是有效的-
navigateTodiagram(${my var}”)
,并且不会破坏JS语法。再次感谢您的回复,我试过了,但没有成功。命令的结果是一个int。我注意到,通过这样做:${my var}=Execute Javascript MYAPP.current_navigation_hash,它不会保存在变量上。你知道为什么吗?非常感谢。
Execute Javascript    navigateTodiagram(305)