标签: selenium-rc

如何使用selenium测试jquery ajax选项卡?

我正在用selenium测试一个django应用程序,我的一个页面使用了jquery ui tabs元素.其中一个选项卡包含一个列出一些用户的简单表,并通过ajax加载.使用该应用程序时,该选项卡工作得很好,但是当使用selenium自动执行测试时,该选项卡似乎不会加载它的内容!我自己在python中编写测试.起初,我正在使用selenium RC 的click方法,但正如我从先前的测试中学到的那样,当涉及到锚标签时,这是相当错误的,所以我采用了之前使用的解决方案:wait_for_condition方法和明确地调用了tab单击事件(甚至是load事件!)然而选项卡仍然无效!

我在这里绝望,我的大多数测试依赖于那个页面,其中几乎一半都在那张桌子上,但是,唉,似乎selenium搞砸了javascript!(我在课堂上有其他测试,它们运行得很好,所以在服务器级别没有任何奇怪的事情,这似乎是由客户端的selenium引起的问题)我的测试代码与此类似:

class TestMyApp(TransactionTestCase):
urls = 'myapp.test_urls'

def setUp(self):
    self.verificationErrors = []
    self.selenium = selenium("localhost", 4444, "*chrome", "http://localhost:8000/")
    self.selenium.start()
    #self.selenium.set_speed(2000)
    self.selenium.window_maximize()
def test_users_list(self):
    """Test that an app's users are correctly listed"""
    sel = self.selenium
    users = []
    for u in range(settings.FREE_USER_LIMIT/2):
        users.append(self.app.users.create(name="testUser_%s"%uuid4()))

    sel.open("/")        
    sel.wait_for_page_to_load("30000")
    sel.wait_for_condition('selenium.browserbot.getCurrentWindow().jQuery("#tabs").tabs("select",1);\
    selenium.browserbot.getCurrentWindow().jQuery("#tabs").tabs("load",1);',
                             3000)
    for user in users:
        try: self.failUnless(sel.is_text_present(user.name))
        except AssertionError, e: self.verificationErrors.append(str(e))
        try: self.failUnless(sel.is_text_present(str(user.added.date())))
        except AssertionError, e: self.verificationErrors.append(str(e))
def tearDown(self):
    self.selenium.stop()
    self.assertEqual([], self.verificationErrors)
Run Code Online (Sandbox Code Playgroud)

python django unit-testing jquery-ui selenium-rc

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

如何关闭Selenium打开的所有窗口?

嘿伙计们,我现在正在使用Selenium RC做一些测试.我使用的驱动程序是python.但是现在,我遇到了一个问题,那就是:每次Selenium RC运行并打开一个url时,它会打开2个窗口,一个用于记录,另一个用于显示HTML内容.但我不能用脚本关闭它们.

这是我的剧本:

#!/usr/bin/env python
#-*-coding:utf-8-*-
from selenium import selenium

def main():
    sel = selenium('localhost', 4444, '*firefox', 'http://www.sina.com.cn/')
    sel.start()
    try:
        sel.open('http://www.sina.com.cn/')
    except Exception, e:
        print e
    else:
        print sel.get_title()
    sel.close()
    sel.stop()

if __name__ == '__main__':
    main()
Run Code Online (Sandbox Code Playgroud)

这很容易理解.我真正想要的是关闭所有硒打开的窗户.我尝试过close()和stop(),但它们都不起作用.

python selenium selenium-rc

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

Selenium测试HTTPs信任所有证书适用于FF但不适用于IE

我一直在使用Selenium RC进行功能测试.

当测试进入我们站点的登录页面并切换到HTTPS时,我一直遇到问题.

我一直在改变设置,但是每个浏览器都被抛弃了.

使用**iehta*和**chrome*作为我的浏览器和信任所有SSL证书确保清洁会话 设置我可以让FF3登录我们的网站,但IE会抛出"这个网站的安全证书有问题." 错误.(我已经安装了证书)

为什么不信任所有证书都适用于IE?

selenium selenium-rc

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

Selenium v​​s XmlUnit + HttpClient用于Web REST API测试

我需要以REST格式测试Web API函数.目前使用Selenium RC对网站进行功能测试.并使用XmlUnitHttpClient功能测试我们的REST API.但是,如果我们能够真正将功能测试代码分离到所有的硒中,那么生活似乎会更容易.特别是使用Selenium 2.0的WebDriver,使用它来测试XML响应比以往任何时候都容易XPath.

我在Pro XmlUnit+HttpClient营地的想法:

  • 允许使用直接数据库调用或Spring bean轻松进行测试
  • 更容易允许在/我们将来支持时测试JSON响应
  • selenium用于Web UI,而不是REST API测试

我在Pro Selenium WebDriver营地的想法:

  • 将功能测试全部分解为标准的硒测试
  • 通过使用我们的其他selenium UI测试轻松测试结果,进一步测试UI
  • 允许其他人而不是核心开发人员审查功能API测试
  • 也许更容易使用像BrowserMob这样使用selenium测试的服务来加载测试API?
  • 希望用selenium框架更快地进行功能测试

我们正在使用Spring 3和hibernate.什么是最好的功能测试我们的API?

testing selenium functional-testing selenium-rc web-api-testing

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

我是否误解了如何使用Python设置Selenium RC?

我对Selenium RC有困难.当尝试在Python中运行脚本时,我看到消息"无法导入名称webdriver".

我可能会遗漏一些非常基本的东西.让我解释一下我采取的一步(更好的是过于细化而不是太模糊......):

  1. 下载并设置Java Development Kit并设置Paths.命令'Java -version'产生"1.6.0_26"

  2. 下载Selenium RC独立服务器.

  3. 启动服务器

  4. 下载并安装了Python 2.6 32位版本

  5. http://selenium.googlecode.com/files/selenium-remote-control-1.0.3.zip下载了Python绑定.从zip文件中,我已将selenium.py复制到我的Python27\Libs目录中.

  6. 在Selenium IDE中创建了一个脚本.导出为Python.

当我尝试从IDLE运行脚本时,我看到消息"ImportError:无法导入名称webdriver".我正在使用的脚本开始

from selenium import webdriver
Run Code Online (Sandbox Code Playgroud)

我在selenium.py中看不到名为'webdriver'的函数的定义.这是错误的文件吗?我很困惑.

没有引用'import webdriver'的脚本工作得很好.

谷歌搜索是非常无益的,大多数教程要么不完整,要么假设Linux环境(我正在使用Windows).

这是Selenium 1与Selenium 2的问题吗?我需要Selenium 2绑定吗?它们与我的不同吗?

任何帮助表示赞赏.

python selenium selenium-rc

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

使用XPath获取第N个元素 - 当元素[N]失败时

关于XPath中的第N个元素已经有了一些讨论:

用于获取元素的第n个实例的XPath查询

使用xpath获取节点的第N个子节点

XPath和PHP:从元素的第n个实例解析

我正在使用Selenium和PHPUnit进行功能测试.我的问题是在具有大表单的页面上,第N个选择器不起作用.我有80个输入字段(使用Selenium的getXpathCount('// input')调用来获取确切的数字) - 我想迭代80个字段并输入一些文本.我已经尝试过但不工作(N是索引变量):

//input[N]
//input[position()=N]
input[N]
(//input)[N]
(.//input)[N]
css=input:nth-of-type(N)
Run Code Online (Sandbox Code Playgroud)

以及上述所有混合物.它通常会触发一个Exception说:在N = 2时找不到元素.我为浏览器尝试了几个XPath工具,因此像Chrome中的XPathEvaluator这样的原生扩展 - 几乎都给了我正确的结果.所以看起来Seleniums XPath解析器的工作方式有点不同.

你怎么看?我想念一件大事吗?

更新:这里你是我的解决方案:getAllFields():http://release.seleniumhq.org/selenium-remote-control/0.9.0/doc/java/com/thoughtworks/selenium/DefaultSelenium.html#getAllFields ()和然后我迭代.

它实际上并没有解决原来的问题,所以我仍然对答案感兴趣.

谢谢!

xpath phpunit selenium-rc

4
推荐指数
2
解决办法
7957
查看次数

Selenium WebDriver问题与cssSelector

我试图在Selenium 2.0 WebDriver中使用CSS选择器单击一个按钮.问题是我能够与Selenium RC一起运行的脚本不能与WebDriver一起使用.码:

Selenium RC:

selenium.click("css=.gwt-Button:contains('Run Query')");
Run Code Online (Sandbox Code Playgroud)

哪个工作绝对没问题.

Selenium WebDriver:

driver.findElement(By.cssSelector(".gwt-Button:contains('Run Query')")).click(); 
Run Code Online (Sandbox Code Playgroud)

这不起作用.我正在使用:selenium-server-standalone-2.9.0.jar和Firefox 5.0版.任何人都可以帮我弄清楚为什么cssSelector不使用WebDriver?

selenium webdriver css-selectors selenium-rc

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

在硒中输入iframe

我需要输入数据到iframe.我提到了

使用Selenium IDE键入IFrame

selenium.selectFrame(<xpath>)返回:Element not found error并没有为此定义css iframe.

使用firebug:

<iframe frameborder="0" allowtransparency="true" tabindex="0" src="" title="Rich text editor, templateWizardCKEditor1, press ALT 0 for help." style="width: 100%; height: 100%;"/>
Run Code Online (Sandbox Code Playgroud)

什么可以解决这个问题?

java iframe selenium xpath selenium-rc

4
推荐指数
2
解决办法
9554
查看次数

如何在CSS Selenium Selector代码之间使用正则表达式?

我在唯一元素ID之间无法使用正则表达式。

这是HTML代码

<td align="left" style="vertical-align: top; ">   
 <span class ="radiobutton"   id="mainId:gen_id_12e3:radiospan1e">      
   <input type="radio" name="radio1" value="on" id="radio1" tabindex="0" checked>       
     <label for="id-2024">Yes</label>
Run Code Online (Sandbox Code Playgroud)

使用xpath,我在元素ID之间使用下面的selenium命令和(。*),它可以正常工作。

    selenium.click("xpath=//span[@id, 'mainId.*radiospan1e']");
Run Code Online (Sandbox Code Playgroud)

但是,我不能在CSS中做同样的事情,因为它们的ID末尾有$,开头是^,而在页面的任何位置都有*,但是我希望ID以mainId开头并带有一些正则表达式,并以唯一ID。

任何帮助,将不胜感激。

regex selenium css-selectors selenium-rc

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

为什么我在Selenium中将"类型已弃用"视为错误?

我正在使用eclipse-jee-luna-SR1-win32-x86_64用于Selenium(Selenium版本是selenium-standalone-2.44.0和selenium-java-2.44.0).我收到了错误The type is deprecated.我的系统上安装了JavaSE-1.8.

> java -version
java version "1.8.0_25"
Java(TM) SE Runtime Environment (build 1.8.0_25-b18)
Java HotSpot(TM) 64-Bit Server VM (build 25.25-b02, mixed mode)
Run Code Online (Sandbox Code Playgroud)

这是我正在使用的代码:

import com.thoughtworks.selenium.DefaultSelenium; 
import com.thoughtworks.selenium.Selenium;
public class FirstTestCase {
    public static void main(String[] args) {
        System.out.println("Hello World");
        Selenium selenium = new DefaultSelenium("localhost", 5555, "chrome", "http://www.xxxxxxyxyxyx.com");
        }
}
Run Code Online (Sandbox Code Playgroud)

java selenium selenium-rc

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