我正在使用 Robot Framework + Selenium2Library 编写网络验收测试。关键是网络包含一些我无法自动化的输入字段(CAPTCHA),并且我无法告诉我的供应商在运行测试时关闭此功能。所以我必须手动输入这个字段。现在我正在这样做:
Create User
[Arguments] ${username} ${password}
Open Browser ${URL} ${BROWSER}
Input Text username ${username}
Input Text password ${password}
Sleep 10 # XXX input CAPTCHA manually here!
Click Button submit
Page Should Contain ${username} has been created.
Run Code Online (Sandbox Code Playgroud)
当我告诉 Robot Framework 时,我已经输入了验证码Sleep 10,到目前为止一切顺利。但我想知道是否有办法告诉机器人框架无限期地等待,然后在我输入完验证码后继续自动化任务?
我正在使用 Robot Framework 自动化网页。该页面具有异常的文本字段,这些字段会在输入无效值时按 Enter接收自动输入(不是占位符值)。
这是文本字段:
<div class="bound_value">
<input id="ember475" size="5" type="text" class="ember-view ember-text-field">
<input id="ember476" type="checkbox" class="ember-view ember-checkbox">
</div>Run Code Online (Sandbox Code Playgroud)
我尝试过处理Input Text和Press Key。我是一个初学者程序员,所以请原谅我的措辞。
使用Input Text:行为就像我单击字段,清除内容,按 Enter 然后输入值。
使用Press Key的行为就像我点击了字段 add 刚刚输入的输入添加到我已经包含的内容中。
Clear Element Text + Press Key 的工作方式与Input Text相同。
我需要一种方法来单击文本字段,删除内容,不按 Enter 键,输入文本,然后按 Enter 键。
如何使用 RIDE 自定义库执行此操作?
预先感谢您的努力。
我需要进行一个循环填充的集合。因此,我需要一个全局集合,并且需要使用Robot Framework在For Loop中使用该集合变量。
请看一下代码
*** Settings ***
Library Selenium2Library
Library Collections
*** Keywords ***
Parent Routine
${ScoreList} ???
: For ${i} IN RANGE 1 5
\ Append To List ${ScoreList} ${i}
#\ Some other manipulation
*** Test Cases ***
Sample Test Case
[Documentation] Simple test for Collection
Parent Routine
Run Code Online (Sandbox Code Playgroud)
我提到了http://robotframework.org/robotframework/latest/libraries/Collections.html
请协助我如何实现这一目标。
selenium pycharm robotframework selenium2library robotframework-ide
在Robot Framework中,任何库中的任何关键字都可以实现吗?打开浏览器并转到 仅转到请求的URL,但不要等到页面文档完全加载.
有没有办法获取有关机器人框架中页面上是否存在元素的信息?
如果页面上存在元素,我想采取一项行动,如果元素不存在,我想采取另一种行动。
在Selenium中,我将使用findElements(),这将返回元素列表,如果未找到任何内容,则返回一个空列表。
但是,在Robot中,如果我使用却Get webelements什么也没找到,则测试因错误而中断:
ValueError: Element locator 'id=asdf' did not match any elements.
Run Code Online (Sandbox Code Playgroud) 我正在用 Selenium2 库编写机器人框架测试,但我无法访问按钮,一页上有许多相同的按钮,所以它没有 id。我尝试访问元素的那些方式:
Click Element xpath=//*[@id="1"]/button
Click Button xpath=//*[@id="1"]/button
Click Element name=add
Click Button name=add
Click Element add
Click Button add
Run Code Online (Sandbox Code Playgroud)
但它没有找到元素。我试过单击按钮,结果相同。元素是:
<button class="add-to-cart" name="add" data-id="1">Add Course</button>
Run Code Online (Sandbox Code Playgroud)
谁能帮助我我做错了什么?
有人可以帮助我如何使用selenium2library,RobotFramework检查文件是否已从浏览器下载.在我当前的测试中,我可以单击下载按钮并且文件正在下载但是如果文件没有下载则会发生什么情况.任何示例代码都很有帮助.
我是机器人框架的新手。
我已经把chromedriver.exe文件放在系统路径中。现在,当我在 RIDE 中运行脚本时,出现此错误:
WebDriverException: Message: 'chromedriver' executable needs to be in PATH. Please see https://sites.google.com/a/chromium.org/chromedriver/home
在 RIDE 本身中还有其他设置路径的方法吗?
更新:我的路径变量包括:
C:\Driver\chromedriver.exe;
selenium webdriver robotframework selenium-chromedriver selenium2library
我正在尝试从网页上的链接下载文件。然而,我收到恼人的警告“这种类型的文件可能会造成伤害......无论如何?保留,丢弃”。我尝试了多种选择来避免警告,但仍然收到警告。我正在使用机器人框架,但是我正在使用 python 为我创建新关键字。
@keyword('open "${url}" in chrome browser')
def open_chrome_browser(self, url):
options = webdriver.ChromeOptions()
options.add_argument("--start-maximized")
options.add_argument("--disable-web-security")
options.add_argument("--allow-running-insecure-content")
options.add_argument("--safebrowsing-disable-extension-blacklist")
options.add_argument("--safebrowsing-disable-download-protection")
prefs = {'safebrowsing.enabled': 'true'}
options.add_experimental_option("prefs", prefs)
self.open_browser(url, 'chrome',alias=None, remote_url=False, desired_capabilities=options.to_capabilities(), ff_profile_dir=None)
Run Code Online (Sandbox Code Playgroud)
有人可以建议一种禁用下载警告的方法吗?
我有这段代码,我试图循环遍历类似的 Xpath 来获取它们的文本,并使用机器人农场作业将文本值添加到列表中
: FOR ${i} IN RANGE 2 ${count}+1
\ sleep 10s
\ ${j} Get Text //*[@id="stats"]/div/div/div[2]/div/div/div/div[${i}]/div[1]
\ Append To List @{dbws_datapoints} ${j}
\ log @{dbws_datapoints}[${j}]
Run Code Online (Sandbox Code Playgroud)
代码执行时没有错误,但它没有打印列表,而是将结果记录在日志文件中,如下所示
对于 ${i} 在范围 [ 2 | ] 内 ${count}+1]
我也附上了屏幕截图。 结果文件图像
请帮忙
我是 Robot 框架的新手,我已经按照此链接中的所有设置相关步骤进行了操作 ,但是,我遇到了一些无法识别的错误。任何人,请帮忙。
*** Settings ***
Documentation Simple example using SeleniumLibrary.
Library Selenium2Library
Library OperatingSystem
*** Variables ***
${LOGIN URL} https://www.google.com/
${BROWSER} Chrome
${EXECDIR} C:\chromedriver_win32\chromedriver.exe
*** Test Cases ***
Checking browser to login page
Setup chromedriver
Open Browser To Login Page
*** Keywords ***
Open Browser To Login Page
Open Browser ${LOGIN URL} ${BROWSER}
Setup chromedriver
Set Environment Variable webdriver.chrome.driver ${EXECDIR}
Run Code Online (Sandbox Code Playgroud)
这是我得到的错误
C:\Users\sanat\AppData\Local\Programs\Python\Python36-32\Scripts\pybot.bat
Smoke.robot
======================================================================
Smoke :: Simple example using SeleniumLibrary.
=====================================================================
Checking browser to login page …Run Code Online (Sandbox Code Playgroud) robotframework ×11
selenium2library ×11
selenium ×3
pycharm ×2
python ×2
automation ×1
input ×1
python-2.7 ×1
textfield ×1
webdriver ×1