【问题标题】:Using a Selenium function in an Python / SST automation script在 Python / SST 自动化脚本中使用 Selenium 函数
【发布时间】:2013-08-08 16:06:41
【问题描述】:

那里有高级自动化人员吗?我正在使用带有 SST 的 Python 编写自动化脚本,并且在使用 SST 时遇到了一些限制。我想从标准 Selenium 库中借用一个函数以在我的脚本中使用,在该脚本中我双击一行文本以突出显示它。我在脚本的开头使用 SST 创建了一个 webdriver 实例,并开始在网页上执行操作。我的问题是:有什么方法可以与 Selenium 函数共享该实例来执行这一操作。我意识到我可以在 Selenium 中完成整个脚本,但我工作的公司致力于 SST,这不会被接受。我不认为有人会介意我加入一个 Selenium 函数。由于 SST 是基于 Selenium 构建的,我认为必须编写一个新类,我可以导入它来执行这样的操作。我要执行的代码如下所示。但是当然,当我使用 Selenium 创建 webdriver 的第二个实例时,会打开一个新的浏览器,然后在逻辑上将脚本分成两半。有什么建议吗?

from sst.actions import *
from selenium import webdriver
from selenium.webdriver.firefox.webdriver import *
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.action_chains import *

go_to('http:/yadayada.net/')
## perform a bunch of actions
text = ## get text element with SST

driver = webdriver.Firefox()
action = ActionChains(driver)
action.double_click(text)
action.perform()

【问题讨论】:

    标签: python selenium


    【解决方案1】:

    要访问底层的webdriver,你要参考:

    sst.actions._test.browser
    

    这是一个直接使用webdriver.Firefox 实例的SST 脚本示例:

    import sst.actions
    
    # a regular SST action
    sst.actions.go_to('http:/testutils.org/sst')
    
    # now using webdriver directly 
    sst.actions._test.browser.get('http://www.python.org')
    

    你问题中的例子可以写成:

    from sst.actions import *
    from selenium.webdriver.common import action_chains
    
    go_to('http:/yadayada.net/')
    ## perform a bunch of actions
    text = ## get text element with SST
    
    driver = sst.actions._test.browser
    action = action_chains.ActionChains(driver)
    action.double_click(text)
    action.perform()
    

    【讨论】:

    • 我尝试了您的建议并收到以下错误。不知道为什么它不能识别我之前在代码中已经引用过的类。我不怀疑它对你有用,我们可能只是有一些版本差异:
    • 请参考我对问题的回答。感谢您的意见,科里。回溯(最后一次调用):文件“”,第 1 行,在 driver = sst.actions._test.browser NameError: name 'sst' is not defined
    • 对不起,虽然我已经弄清楚了,它是使用 SST 创建实例(即 page = start('Firefox')),然后在稍后的代码中引用它(即 driver = webdriver.page ())。不过,这两种方法都不起作用。不太相信 Selenium 和 SST 可以共享 webdriver 的实例,因为我找不到任何这样的文档。所以,还在寻找,谢谢。
    • @Daemon,试试我回答的第一个 sn-p 中的确切代码。还要记住它是一个 sst“脚本”,必须通过“sst-run”运行,而不是直接在 python 解释器中运行。
    • @Daemon,如果您仍然遇到问题,请确认您是最新的 SST 版本(当前为 0.2.4)
    猜你喜欢
    • 2022-01-07
    • 2014-01-10
    • 2018-12-29
    • 1970-01-01
    • 1970-01-01
    • 2013-01-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多