【问题标题】:Robot framework: select element from google location API机器人框架:从谷歌位置 API 中选择元素
【发布时间】:2017-09-16 03:31:42
【问题描述】:

我正在尝试从 google API 中选择值。 我的python版本是2.7。我正在为谷歌浏览器编写脚本。

当我开始在文本框中输入内容时,文本框会显示一些可用值。就像我输入“Del”一样,它会显示印度德里的建议。

现在我已经编写了脚本,直到在文本字段中输入文本,它还显示了可用值。但由于它不是下拉列表,我无法使用名称或索引从该列表中选择值。 我尝试按下向下箭头键,但使用 ASCII 值作为 //40 按值作为 ( 在文本字段中。

任何人都可以建议选择值或按向下箭头键的解决方案。

Click element    ${Location_Input}
Press Key    ${Location_Input}    P
sleep    4Seconds
Press Key    ${Location_Input}    \\40

结果为:"P("

【问题讨论】:

    标签: robotframework


    【解决方案1】:

    Press Key ${Location_Input} \\40 完全按照文档中的说明进行操作,即按代码 \\40 表示的 ASCII 字符 (。查看任何 ASCII 表: http://robotframework.org/Selenium2Library/Selenium2Library.html#Press%20Key

    如果你想按非 ASCII 键,那就有点困难了。 我建议写例如像这样在原始 Selenium2Library 之上的扩展库:

    # ExtendedSelenium.py
    from Selenium2Library import Selenium2Library
    from selenium.webdriver.common.action_chains import ActionChains
    from selenium.webdriver.common.keys import Keys
    
    
    class ExtendedSelenium(Selenium2Library):
    
        def __init__(self):
            super(ExtendedSelenium, self).__init__()
    
        def press_down_arrow(self):
            """ Emulates action "press down arrow on keyboard".
            """
            ActionChains(self._current_browser()).send_keys(Keys.ARROW_DOWN, Keys.NULL).perform()
    

    ...然后从您的射频代码中调用它:

    Library    ExtendedSelenium.py
    
    *** Test Cases ***
    Your Test
        ...
        Press Down Arrow
        ...
    

    【讨论】:

    • 感谢 Jan 的快速响应,我很确定这会奏效,但作为初学者,我不知道确切的位置和方法。我所做的是将您的代码复制到一个文本文件中,并将其保存为文件夹 C:\Python27\Lib\site-packages\Selenium2Library 下的 ExtendedSelenium.py。并在我的射频代码中提到它并调用了向下箭头。但看起来我犯了一些错误。你能指导我吗?
    • 我将 lib 文件保存在位置“C:\Python27\Lib”,它显示错误为启动浏览器 :: 启动浏览器 |失败 |找到多个名称为“打开浏览器”的关键字。给出要使用的关键字的全名:ExtendedSelenium.Open Browser Selenium2Library.Open Browser
    • 啊,我忘了提到在这种库继承的情况下,假设(并且需要)新的扩展库将被使用而不是原来的 Selenium2Library,而不是一起使用。
    • 非常感谢....现在可以使用了。过去两天我一直在努力解决这个问题……现在找到了解决方案。再次非常感谢。
    • 嗨 Jan,你能告诉我按 Tab 键的情况吗?我有一种情况,我只想按一个 tab 键而不给出属性,你能建议我如何修改上面的类还是我需要创建一个单独的类以及需要在该类中添加什么代码?提前致谢。为您打开问题。
    猜你喜欢
    • 2012-04-24
    • 2018-12-29
    • 2019-03-16
    • 2023-03-04
    • 1970-01-01
    • 2015-11-11
    • 2014-09-15
    • 1970-01-01
    • 2018-12-04
    相关资源
    最近更新 更多