Robotframework Robot框架:从google location API中选择元素

Robotframework Robot框架:从google location API中选择元素,robotframework,Robotframework,我试图从谷歌API中选择值。 我的python版本是2.7。我正在为谷歌浏览器编写脚本 当我开始在文本框中键入内容时,文本框会显示一些可用值。比如,如果我输入“Del”,它会显示印度德里的建议 现在我已经编写了脚本,直到在文本字段中输入文本,它还显示了可用的值。但由于它不是下拉列表,我无法使用名称或索引从该列表中选择值。 我试图按下向下箭头键,但使用ASCII值作为//40,在文本字段中按值作为 任何人都可以建议选择值或按下向下箭头键的解决方案 Click element ${Locati

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

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

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

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

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

结果显示为:“p(“

按${Location\u Input}\\40
键完全执行文档中所写的操作,即按ASCII字符
由code
\\40
表示)。查看任何ASCII表:

如果您想按非ASCII键,它会变得有点困难。 我建议在原始Selenium2库的基础上编写扩展库,如下所示:

# 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文件夹下的extendedsenium.py。并在我的RF代码中提到了它,并调用了向下箭头。但是好的,我好像犯了一些错误。你能指导我吗。我把lib文件保存在位置“C:\Python27\lib”,它将错误显示为launch browser::launching browser | FAIL |找到了多个名为“Open browser”的关键字。请给出您要使用的关键字的全名:ExtendedSelenium。Open browser Selenium2Library。Open BrowserAh,我忘了提到,如果存在此类库继承,它是suppos教育(和需要)新的扩展库将被使用,而不是原来的Selenium2库,而不是一起使用。非常感谢…现在开始工作了。过去两天我一直在努力解决这个问题…现在得到了解决方案。再次非常感谢。嗨,Jan,你能告诉我按tab键的情况吗?我遇到了一个情况,我只想用对于给定的属性,你能建议我如何修改上面的类,或者我需要包装一个单独的类,以及需要在该类中添加什么代码吗?提前谢谢。为你打开问题。