有一段时间我一直在调查Selenium RC,以便对我的Web应用程序进行功能测试.我现在已经找到了一个非常有效的测试策略,我不想放弃Selenium RC(花了几周时间试图找出验证ASP.NET验证控件的好方法).
但是现在我的Selenium RC冒险从POC变成了我实际使用的东西,我遇到了一个问题.这太疯狂了.执行加载页面的单个测试,填写某些字段,然后单击按钮需要执行大小的秒数.当它执行时,我可以很容易地看到每个字段一次填写一个.在Firefox中使用Selenium IDE并不是那么慢.
我找到了这个页面,明确指出Selenium RC很慢http://selenium-grid.seleniumhq.org/how_it_works.html
但那是为什么呢?是因为浏览器正在轮询selenium服务器吗?如果是这样,是否可以修改此轮询间隔?还是有另一个原因.我不习惯远程呼叫需要花费大量时间来执行.
执行一些测试应该花费很长时间,这太可怕了.我可以比单个网页运行10个测试更快地执行我的整个演示文稿(MVP),业务和数据库层测试套件(500多个测试).
我通过Python api在Selenium RC中使用xpath.
我需要点击一个文字是"提交"的元素
这是我得到的错误:
In [18]: sel.click(u"xpath=//a[text()='Submit \xbb')]")
---------------------------------------------------------------------------
UnicodeDecodeError Traceback (most recent call last)
/Users/me/<ipython console> in <module>()
/Users/me/selenium.py in click(self, locator)
282 'locator' is an element locator
283 """
--> 284 self.do_command("click", [locator,])
285
286
/Users/me/selenium.py in do_command(self, verb, args)
201 body = u'cmd=' + urllib.quote_plus(unicode(verb).encode('utf-8'))
202 for i in range(len(args)):
--> 203 body += '&' + unicode(i+1) + '=' + urllib.quote_plus(unicode(args[i]).encode('utf-8'))
204 if (None != self.sessionId):
205 body += "&sessionId=" + unicode(self.sessionId)
UnicodeDecodeError: 'ascii' codec can't …Run Code Online (Sandbox Code Playgroud) 我有HTML,看起来基本上如下:
...
<a class="btnX btnSelectedBG" href="#"><span>Sign in</span></a>
...
Run Code Online (Sandbox Code Playgroud)
Selenium中的以下xpath无法找到元素:
//a[contains(text(), 'Sign in') and contains(@class,'btnX')]
Run Code Online (Sandbox Code Playgroud)
Selenium中的以下xpath成功,但对我来说不够具体.
//a[contains(text(), 'Sign in')]
//a[contains(@class, 'btnX')]
Run Code Online (Sandbox Code Playgroud)
为什么xpath无法找到元素,我该怎么做才能让它工作?
我试图用代理启动selenium和selenium的浏览器但没有获得成功.我用过两种方法:
Properties sysProps = System.getProperties();
sysProps.put("proxySet", "true");
sysProps.put("proxyHost", "190.249.188.220");
sysProps.put("proxyPort", "81");
Run Code Online (Sandbox Code Playgroud)
和
java -jar lib/selenium-server.jar proxyHost=22.52.50.228 proxyPort=80
Run Code Online (Sandbox Code Playgroud)
但两者都不支持.
有人能够帮助我用代理启动selenium的浏览器.
我的问题是如何从SeleniumServer浏览器实例中获取隔离的视频流.让我解释.
我在Ubuntu Server机器上运行Selenium Server集线器,在同一服务器上运行Selenium Server节点,因此我使用xvfb使用'无头'Selenium模式.我像这样运行节点:DISPLAY=:99 java -jar selenium-server-standalone.jar -role node -hub http://localhost:4444/grid/register
然后我想获得在那里运行的测试的视频流,所以我安装了连接到xvfb虚拟显示器的x11server,之后我可以使用VNC连接那些远程服务器,我看到我的测试处理.问题是节点内的所有浏览器实例都在同一虚拟显示器上呈现(#99),当我需要同时运行多个测试时,我看到许多浏览器实例逐个重叠.但我想记录错误测试视频流,所以我不能这样做.所以我需要有可能连接到每个浏览器虚拟显示器.
我想我可以通过调整xvfb服务器以某种方式强制它为每个客户端(在我的情况下是浏览器实例)创建隔离的虚拟显示或屏幕(xvfb有多屏支持,不是吗?)来解决这个问题.但我试图这样做,但我没有得到结果.如果有必要解决这个问题,我还可以使用另一个虚拟显示器(不是xvfb).
请帮助我从每个浏览器实例中获取孤立的视频流:)非常感谢并对我的英语感到抱歉.
我必须承认,我爱上了Selenium的记录和播放功能,以及IDE中记录的操作的测试用例生成功能.但由于在录制过程中内置于测试用例中的偶然细节(例如,使用DOM,xpath..etc定位事件),我仍然对进入实现阶段犹豫不决,这可能会导致测试用例在出现问题时失败一旦将html导入RC,就会进行更改.我完全明白,作为回归测试的一部分,不时调整预期结果是测试人员工作的一部分,但我也不希望花在这上面的时间大于手动测试所花费的时间. .
据我所知,Selenium with Robot framework具有测试用例的关键字形式.我的猜测是它允许我们将附带的细节提取到各种关键字中,这可以使测试用例更容易调整并且更易于维护.(如果我错了,请纠正我)
我们将听到有关如何设置有效的UI自动化环境的建议.我应该只使用Selenium RC或Selenium和Robot框架吗?为什么?
提前致谢
我有一个使用selenium RC的python脚本; 特别是webdriver.
我希望将脚本作为post-commit钩子运行,最好是通过IE,Safari(如果可能),Chrome和Firefox.
但是我不确定我需要做什么,因为每次我在本地机器上运行它时,都会弹出一个浏览器.
我听说过"酱油".这是最好的解决方案吗?
我正在寻找一种方法来自动化我在Silverlight上的应用程序构建.
我需要根据需要使用Selenium,任何人都可以讲一个过程或任何好的教程,通过它我可以实现我的要求.
提前致谢.
元素isElementPresent和isVisibleSelenium RC 之间有什么区别.我明白了
selenium.isElementPresent() 和 selenium.isVisible()
如果我因为selenium.isElementPresent()我得到例外而变得虚假selenium.isVisible()
我在一个网站上有3个不同的帐户,我想登录并每天打印一份报告.
我已经完成了Selenium IDE录制,允许我登录并打印报告,但是,每天我必须更改变量3次(对于3个不同的用户名和密码).
如何将变量传递给"type"命令的"value"字段?
谢谢.
最好,
selenium-rc ×10
selenium ×7
java ×3
python ×2
xpath ×2
automation ×1
headless ×1
proxy ×1
selenium-ide ×1
silverlight ×1
unicode ×1