任何人都可以确认Selenium RC服务器是否完全支持IE8?
我使用Selenium RC与IE 6和XPath定位器非常慢.所以我试图看看javascript-xpath是否真的能加快速度.
但是找不到关于如何使用本机x路径库的足够/清晰的文档.
我正在做以下事情:
protected void startSelenium (String testServer, String appName, String testInBrowser){
selenium = new DefaultSelenium("localhost", 4444, "*" +testInBrowser, testServer+ "/"+ appName + "/");
echo("selenium instance created:"+selenium.getClass());
selenium.start();
echo("selenium instance started..." + testServer + "/" + appName +"/");
selenium.runScript("lib/javascript-xpath-latest-cmp.js");
selenium.useXpathLibrary("javascript-xpath");
selenium.allowNativeXpath("true");
}
Run Code Online (Sandbox Code Playgroud)
这导致XPath定位器的速度提高,但改进不一致.在某些运行中,定位器所用的时间减半; 而有时它随机高.
我在这里错过了任何配置步骤吗?如果能够取得成功的人能够分享他们的观点和方法,那将会很棒.
谢谢,Nirmal
解:
protected void startSelenium (String testServer, String appName, String testInBrowser){
selenium = new DefaultSelenium("localhost", 4444, "*" +testInBrowser, testServer+ "/"+ appName + "/");
echo("selenium instance created:"+selenium.getClass());
selenium.start();
echo("selenium instance started..." + testServer + …Run Code Online (Sandbox Code Playgroud) 我正在从selenium-1升级到selenium-2并试用新的HtmlUnit驱动程序.我已经尝试了一些基本的测试(打开一个页面,get_text,..)似乎
我很高兴听到你对它的印象.我希望你会发现我错了(我可以没有(1)速度但(2)稳定性至关重要)?是否有HtmlUnit与selenium驱动程序的速度比较?
我目前的设置是我在Windows机器上运行作为集线器的selenium RC(假设机器名称是machine.name.com).我使用以下命令启动它
java -jar selenium-server2.15.jar -role hub -port 5555
Run Code Online (Sandbox Code Playgroud)
我有一个在同一台机器上运行的selenium节点,它注册到上面的节点.我使用以下命令启动节点
java -jar selenium-server2.15.jar -role node -port 5554 -hub http://machine.name.com:5555/grid/register
Run Code Online (Sandbox Code Playgroud)
此节点已成功注册,我也可以运行此节点的测试.
现在我有另一台机器(LINUX一个 - 让我们假设这台机器的IP地址是10.123.123.123),表格我希望在5555端口的windows(machine.name.com)机器上运行注册到集线器的另一个节点我使用以下命令启动节点.
java -jar selenium-server2.15.jar -role node -port 5572 -hub http://machine.name.com:5555/grid/register -browser browserName=chrome,platform=LINUX,maxInstances=5
Run Code Online (Sandbox Code Playgroud)
问题是该节点没有被HUB注册.
我确实知道Hub和Node已经检测到对方,因为当我在浏览器上点击 http://machine.name.com:5555/console时,两个节点都会显示出来.但Linux机器旁边有一条错误信息" 在http://10.123.123.123:5572上收听(目前无法联系) "
并且不能从该节点运行硒测试.
我在这里阅读seleniumgroups ,远程节点也必须定义-hubHost键值对.所以我也尝试了以下命令,但没有成功
java -jar selenium-server2.15.jar -role node -port 5572 -hub http://machine.name.com:5555/grid/register -browser browserName=chrome,platform=LINUX, maxInstances=5 -hubHost "machine.name.com"
Run Code Online (Sandbox Code Playgroud)
但是这也没有注册节点.
请注意,linux机器上的控制台上没有抛出任何错误.所有显示的是 -
13:20:55.891 INFO - starting auto register thread. Will try to register every 5000ms
13:20:55.891 …Run Code Online (Sandbox Code Playgroud) 从过去4个月开始使用自动化测试Selenium RC.
但最近我才知道Selenium RC已被弃用.很多人建议我换到Selenium Webdriver.
所以,任何人都可以告诉我Selenium RC的问题以及Webdriver如何比RC更好?
谢谢.
显然我今天早上升级了我的Firefox以及其他一些系统更新,现在我的硒测试已经破了!他们昨天工作正常,一切都过去了.表现悬停似乎是一个问题.这是我得到的错误:
Traceback (most recent call last):
File "sel.py", line 201, in testAddContent
hoveredElement.perform()
File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/common/action_chains.py", line 44, in perform
action()
File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/common/action_chains.py", line 201, in <lambda>
self._driver.execute(Command.MOVE_TO, {'element': to_element.id}))
File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/webdriver.py", line 155, in execute
self.error_handler.check_response(response)
File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/errorhandler.py", line 147, in check_response
raise exception_class(message, screen, stacktrace)
InvalidElementStateException: Message: u'Cannot perform native interaction: Could not load native events component.' ; Stacktrace: Method generateErrorForNativeEvents threw an error in file:///tmp/tmpq2yHMn/extensions/fxdriver@googlecode.com/components/driver_component.js
Run Code Online (Sandbox Code Playgroud) 3我正在使用selenium-server-standalone-2.33.0.jar来启动selenium测试套件.我有一个测试套件,在firefox和Internet Explorer中运行得非常好.当我尝试在Google Chrome中运行它时,它对当前用户运行正常.当我尝试从本地系统用户运行测试(打开以本地系统用户身份运行的命令窗口)时,测试失败,给我一个Windows注册表异常.这是我试图运行的命令:
java -jar selenium-server-standalone-2.33.0.jar -port 5885 -htmlsuite "*googlechrome" "http://www.google.com" "TestSuite.html" "results.html"
Run Code Online (Sandbox Code Playgroud)
这是我得到的例外:
HTML suite exception seen:
java.lang.RuntimeException: org.openqa.selenium.os.WindowsRegistryException: Problem while managing
the registry, OS Version '6.1', regVersion1 = false
Build info: version: '2.33.0', revision: '6c40c18', time: '2013-04-09 17:22:56'
System info: os.name: 'Windows 7', os.arch: 'amd64', os.version: '6.1', java.version: '1.6.0_38'
Driver info: driver.version: unknown
at org.openqa.selenium.server.browserlaunchers.BrowserLauncherFactory.createBrowserLauncher(
BrowserLauncherFactory.java:175)
at org.openqa.selenium.server.browserlaunchers.BrowserLauncherFactory.getBrowserLauncher(Bro
wserLauncherFactory.java:109)
at org.openqa.selenium.server.htmlrunner.HTMLLauncher.getBrowserLauncher(HTMLLauncher.java:7
9)
at org.openqa.selenium.server.htmlrunner.HTMLLauncher.runHTMLSuite(HTMLLauncher.java:139)
at org.openqa.selenium.server.htmlrunner.HTMLLauncher.runHTMLSuite(HTMLLauncher.java:198)
at org.openqa.selenium.server.SeleniumServer.runHtmlSuite(SeleniumServer.java:630)
at org.openqa.selenium.server.SeleniumServer.boot(SeleniumServer.java:305)
at org.openqa.selenium.server.SeleniumServer.main(SeleniumServer.java:245)
at org.openqa.grid.selenium.GridLauncher.main(GridLauncher.java:54)
Caused by: org.openqa.selenium.os.WindowsRegistryException: Problem …Run Code Online (Sandbox Code Playgroud) 我有一个使用React的Web应用程序,我正在尝试使用Selenium RC创建一些测试.我发现,当Selenium更改字段值时,事件未被正确触发.我知道这是一个典型的问题,正如WebDriver FAQ所证明的那样,我尝试过一些不同的东西,比如使用onFocus而不是onChange,并确保使用sendKeys()vs type()来改变焦点和进出,以编程方式调用该事件,以及我可以在网上找到的任何其他建议,但我无法使其正常工作.
作为我正在尝试做的一个简单示例,我删除了评论框反应示例.我有一个textarea输入框和一个div应该用textarea的值更新.Selenium可以更新textarea,但是当它发生时div不会改变.
这是我的reactjs代码:
/** @jsx React.DOM */
var MarkdownEditor = React.createClass({
getInitialState: function() {
return {value: 'Original Text'};
},
handleChange: function() {
this.setState({value: this.refs.textarea.getDOMNode().value});
},
render: function() {
return (
<div className="MarkdownEditor">
<h3>Input</h3>
<textarea
onChange={this.handleChange}
ref="textarea"
defaultValue={this.state.value} />
<h3>Output</h3>
<div
className="content"
id="content2",
dangerouslySetInnerHTML={{
__html: this.state.value
}}
/>
</div>
);
}
});
React.renderComponent(<MarkdownEditor />, document.getElementById('content'));
Run Code Online (Sandbox Code Playgroud)
这是我目前的Selenium测试用例:
import com.thoughtworks.selenium.*;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import static org.junit.Assert.*;
import java.util.regex.Pattern;
import java.util.Properties;
import junit.framework.TestCase;
public class textTest …Run Code Online (Sandbox Code Playgroud) 我有本地运行良好的Protractor测试(directConnect:true),但是当我尝试在远程Selenium服务器(Grid)上运行它们时,我总是收到以下消息.
A Jasmine spec timed out. Resetting the WebDriver Control Flow.
Run Code Online (Sandbox Code Playgroud)
查看故障,消息和堆栈显示以下所有测试用例:
Message:
Error: Timeout - Async callback was not invoked within timeout specified by jasmine.DEFAULT_TIMEOUT_INTERVAL.
Stack:
Error: Timeout - Async callback was not invoked within timeout specified by jasmine.DEFAULT_TIMEOUT_INTERVAL.
at Timer.listOnTimeout (timers.js:92:15)
Run Code Online (Sandbox Code Playgroud)
我尝试了很多东西,例如增加jasmine超时间隔,将更早的超时(例如getPageTimeout和allScriptsTimeout)添加到conf,但它仍然会抛出jasmine超时错误.该日志显示以下错误:
00:03:18.328 INFO - Done: [execute async script: try { return (function (rootSelector, ng12Hybrid, callback) {
var el = document.querySelector(rootSelector);
try {
if (!ng12Hybrid && window.getAngularTestability) {
window.getAngularTestability(el).whenStable(callback);
return;
}
if (!window.angular) {
throw new Error('window.angular is …Run Code Online (Sandbox Code Playgroud) selenium-rc ×10
selenium ×8
webdriver ×2
angularjs ×1
firefox ×1
htmlunit ×1
javascript ×1
protractor ×1
reactjs ×1
testing ×1
windows ×1
windows-7 ×1
xpath ×1