标签: selenium-rc

如何使用JavaScript在Selenium RC中使用xpath?

我使用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)

javascript selenium xpath selenium-rc

7
推荐指数
1
解决办法
6324
查看次数

7
推荐指数
2
解决办法
4937
查看次数

当作为本地系统用户运行时,使用chrome的selenium问题

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)

windows selenium selenium-rc windows-7 local-system-account

7
推荐指数
1
解决办法
1039
查看次数

使用Selenium在多个版本的浏览器上进行测试

我想知道是否有人熟悉使用selenium测试不同的浏览器版本.我知道您可以指定要测试的浏览器(使用*firefox或*iexplore)但是如果我安装了多个版本的firefox或IE,我想要一个测试来启动特定的Web浏览器版本,这样一个测试就可以运行IE7另一个可能会针对IE8运行.

目前,我的测试将始终针对我安装的任何默认浏览器版本运行.我意识到,如果我在多台机器上运行selenium,每个盒子都可能有不同的浏览器版本,这将解决我的问题,但我想知道我问的是什么(在一台机器上有多个浏览器版本)是可能的.

谢谢.

selenium selenium-rc

6
推荐指数
1
解决办法
4807
查看次数

如何使用 Selenium 2 发送 http RequestHeader?

我需要发送一个带有一些修改过的标头的 Http 请求。在尝试Selenium.addCustomRequestHeader为 Selenium 2寻找与 Selenium RC 等效的方法几个小时后,我放弃并使用 JavaScript 来达到我的目的。我预计这会容易得多!

有人知道更好的方法吗?

这就是我所做的:

javascript.js

var test = {
    "sendHttpHeaders": function(dst, header1Name, header1Val, header2Name, header2Val) {
        var http = new XMLHttpRequest();

        http.open("GET", dst, "false");
        http.setRequestHeader(header1Name,header1Val);
        http.setRequestHeader(header2Name,header2Val);
        http.send(null);
    }
}
Run Code Online (Sandbox Code Playgroud)

我的测试程序

// ...

@Test
public void testFirstLogin() throws Exception {
    WebDriver driver = new FirefoxDriver();

    String url = System.getProperty(Constants.URL_PROPERTY_NAME);
    driver.get(url);

    // Using javascript to send http headers
    String scriptResource = this.getClass().getPackage().getName()
        .replace(".", "/") + "/javascript.js";

    String script = getFromResource(scriptResource)
            + "test.sendHttpHeaders(\"" …
Run Code Online (Sandbox Code Playgroud)

selenium selenium-rc selenium-webdriver

6
推荐指数
2
解决办法
2万
查看次数

如何使用selenium和css获取属性值

我有以下HTML代码:

<a href="/search/?p=2&q=move&mt=1"> 2 </a>
Run Code Online (Sandbox Code Playgroud)

我想得到href中包含的内容,即我正在寻找一个命令,它会给我"/ search /?p = 2&q = move&mt = 1"的值为href.

对于上面的查询,有人可以帮助我使用selenium中的相应命令和css定位器吗?

如果我有类似的东西:

<a href="/search/?p=2&q=move&mt=1"> 2 </a> 
<a href="/search/?p=2&q=move&mt=2"> 3 </a> 
Run Code Online (Sandbox Code Playgroud)

在这两个中,如果我要获取文本conatins为'2'的href的属性值,那么我的css定位器synatx将如何显示?

css selenium css-selectors selenium-rc

6
推荐指数
1
解决办法
4万
查看次数

Selenium:我如何断言特定表格的特定单元格中存在某个元素?

我的页面上有一个表,它应该包含某个元素.我可以通过名称识别表(它有一个唯一的名称),我也可以轻松识别该元素.我想断言该元素存在于表的行r,列c上.使用Selenium命令最干净的方法是什么?

备注:

  • 我不想使用多个表名来定位它(我不希望div\div\table\div\tbody\td\tr[r]\td[c]代码中的所有内容).
  • 我在PHPUnit中使用Selenium.因此,我可以使用PHP逻辑来完成任务,尽管我不希望任何复杂的逻辑用于这样一个简单的任务.

澄清:

如果单元格中的元素只是纯文本,那么我可以像这样检索该文本:

$this->getText("xpath=//table[@name='tableName']//tr[".$r."]//td[".$c."]"); (PHP)

但是如果单元格中的元素不仅仅是纯文本呢?如果元素是link(link=anchor)或button(//button[@type='button'])或图像或更复杂的东西怎么办?

我需要声明由该元素的定位器指定的元素驻留在给定的单元格中.

php selenium unit-testing html-table selenium-rc

6
推荐指数
1
解决办法
5569
查看次数

java中selenium rc驱动程序的代理

如何在Java中为selenium进行代理配置?

我正在连接到selenium:

Process p = Runtime.getRuntime().exec("java -jar lib/selenium-server.jar");
selenium = new DefaultSelenium("localhost", 4444, "*safari", "www.example.com");
Run Code Online (Sandbox Code Playgroud)

我想在没有用户名和密码凭据的情况下配置免费代理,以便在safari浏览器中运行selenium应用程序.

我已经尝试了下面的代码来为测试设置代理

System.setProperty("http:proxyHost","207.229.122.162"); System.setProperty("http:proxyPort","3128");

但上面的代码不能正常工作!! 它甚至接受null作为参数,

请建议我解决问题的方法!!

提前致谢 !!

java proxy selenium-rc selenium-webdriver

6
推荐指数
1
解决办法
1080
查看次数

组织硒测试和单元测试的最佳实践

所以我正在尝试在我正在开展的几个项目中引入selenium单元测试django 1.4.

运行单元测试的标准方法就是这样做./manage.py test,我用它django-ignoretests来排除我不想测试的特定django应用程序(根据需要).

但是,有没有办法配置我的项目,以便我可以决定在我想要的时候运行selenium测试,并且只./manage.py test运行标准的单元测试.

分离和组织硒测试和标准单元测试有哪些最佳实践?

django selenium unit-testing selenium-rc

6
推荐指数
2
解决办法
1307
查看次数

使用Selenium RC捕获浏览器

我想使用BrowserStack之类的browserfarms来运行UI测试.我们目前正在使用BS通过JsTestDriver运行单元测试.因此,启动服务器,让browserfarm创建的一堆浏览器连接到jstd服务器,然后执行测试.

不幸的是,我无法找到一种方法来编写与jstd一起使用的UI测试(单击某个按钮,键入内容等).

Selenium RC是一个旨在进行UI测试的框架,但它强制使用自己的浏览器实例:Selenium通过作为框架一部分的驱动程序启动自己的浏览器.

我想要的是将JsTestDriver概念与Selenium的UI测试相结合:使用Selenium编写测试,在本地主机上启动Selenium RC服务器,让一堆浏览器连接到在browserfarm上启动的服务器,然后执行UI试验.

这甚至可能吗?有没有其他方法可以使用JSTD运行UI测试?Selenium RC是否无法捕获未使用webdriver启动的浏览器?

提前致谢.

javascript selenium ui-testing selenium-rc js-test-driver

6
推荐指数
1
解决办法
410
查看次数