标签: selenium-rc

Selenium:如何输入空格作为文本字段的值?

我有一个表单文本字段,其中填充了默认值。我想清除该值并输入空格以断言发生了预期的验证。我正在使用 Selenium RC 和 PHPUnit Selenium 扩展。我怎样才能实现这个目标?

注意:我已经尝试过这样做,但它们不起作用:

$this->type('FirstName', "  "); //spaces
$this->type('FirstName', "\t"); //tab character
Run Code Online (Sandbox Code Playgroud)

他们清除字段中的值,但不会将空白输入字段中。

更新:我发现如果您使用 Selenium IDE,您可以通过使用它们的${space}变量键入空格,但在使用 Selenium RC 和 PHPUnit Selenium 扩展时这不起作用。

selenium phpunit selenium-rc

5
推荐指数
1
解决办法
8774
查看次数

模块化Selenium RC测试脚本的最佳实践

我在Visual Studio(C#)中创建Selenium RC测试脚本.我正在努力重新考虑测试; 我所有的测试都在一个文件中.我将非常感谢网站,书籍等的任何输入和/或指示,以了解模块化测试.

我必须在不同的站点(相同的应用程序,但为不同的客户端和登录配置不同)运行相同的测试,这些测试的95%相同.有人愿意提供一些很好的例子或最佳实践吗?

谢谢!

c# selenium nunit selenium-rc

5
推荐指数
1
解决办法
3691
查看次数

Selenium的GetAttribute方法的并发症

我最近尝试使用selenium RC的GetAttribute方法,但立即遇到了挑战.我试图执行一个非常简单selenium.GetAttribute("//a/@href")但代码抛出一个SeleniumException,消息"错误:无法找到元素属性:// a/@ href".通过替换selenium.GetText("//a[@href]")代替的的getAttribute电话,我确认了一个元素肯定存在,因为这种说法正确的返回链接的文本.

然后我尝试了:

  • 指向具有不同协议的不同网页(文件:/// vs http://) - 同样的问题.
  • 使用指向不同属性的不同xpath定位器 - 同样的问题.
  • 使用DOM定位器selenium.GetAttribute("document.getElementsByTagName('a')[0].getAttribute('href')")- 同样的问题; 稍有不同的错误消息(并且错误消息缺少最后的括号): "错误:元素document.getElementsByTagName('a')[0] .getAttribute('找不到'href'.请注意,这个确切的表达式在Firebug中正常工作安慰.
  • 使用绝对而不是相对xpath寻址,selenium.GetText("xpath=/html/body/a[@href]")用来确认存在然后selenium.GetAttribute("xpath=/html/body/a/@href")获取属性 - 它工作了!

虽然手册明确指出相对 xpath定位器不需要显式定位器类型(即"xpath ="前缀),但它对绝对 xpath定位器保持沉默; 我从中解释说前缀是必需的.但出于好奇,我回到了我的相对表达并添加了显式前缀 - 更改selenium.GetAttribute("//a/@href")selenium.GetAttribute("xpath=//a/@href")- 这也有效!

最后,我在Selenium IDE中使用非常方便的" 查找"按钮进行的实验表明,它可以很好地处理元素,但是会失败并带有属性.我可以理解,突出属性没有意义,因为属性不是可见的页面元素,但为什么不突出显示包含属性的元素,并使其以不同的颜色?也许不是一项微不足道的任务......

我的问题:

我将上述实验的结果归结为这些问题; 这是我在这里发布的全部目的!这些似乎对我来说都是一个错误,但如果您认为我的使用不正确或有解决方法,请告诉我:

  1. 为什么具有XPath定位器类型的GetAttribute 在其他方法(例如GetText)不具有唯一需要显式定位器类型的情况下?
  2. 为什么DOM定位器因"未找到"错误而失败?(该手册还明确指出,DOM定位器就不会需要一个明确的定位类型的前缀,但无论如何我尝试添加"DOM ="作为对DOM测试的前缀;它还是失败)
  3. 为什么Selenium IDE在尝试突出显示(查找)属性时不会更优雅地失败?使用相同的"xpath=//a/@href"定位器,按下查找按钮会产生这个丑陋的消息:"找不到[错误]定位器:xpath = // a/@ href,error = [Exception ..."无法转换JavaScript参数arg 0 [inIFlasher.scrollElementIntoView …

c# xpath dom css-selectors selenium-rc

5
推荐指数
1
解决办法
9620
查看次数

Selenium RC:如何单击表格列中的项目

假设我有一个表包含许多行,这些行是未知的.exp column1 column2 column3 xxx yyy"搜索个人资料"

每行的Column3包含一个链接"搜索配置文件",现在很清楚,此链接的xpath将根据该行进行更改.现在我想搜索第2列中的字符串,如果存在则需要单击它的column3链接.有人可以告诉我如何搜索并点击它吗?

selenium selenium-rc

5
推荐指数
1
解决办法
7595
查看次数

如何远程运行Selenium RC + PHPUnit + NetBeans?

我在一台机器上启动并运行Selenium Server,PHPUnit和NetBeans,我想成为我的专用测试盒.我如何设置它来修改测试用例(我已经想出那个部分)并告诉测试机远程运行测试?

selenium phpunit netbeans selenium-rc

5
推荐指数
1
解决办法
1352
查看次数

Selenium:从命令提示符执行测试套件时,不会跨测试用例考虑存储的变量

我有一个包含 3 个测试用例的测试套件,其中第一个测试用例具有其他 2 个测试用例所需的所有变量(类似于它的测试套件数据集)

当我在 selenium IDE 中执行测试套件时(在 IDE 中手动加载测试套件然后运行),一切都很好。

但是我想要一个测试用例执行的报告,所以现在我使用下面的命令来执行测试套件
java -jar "selenium-server jar path" -htmlSuite "*firefox" "baseurl" "TestSuite path" "Results file Path"

现在问题是从命令 propmt 执行测试套件时,
变量存储在第一个测试用例中,在第二个测试用例中未考虑,等等。

所以任何人都可以帮我解决这个问题。

selenium selenium-ide selenium-rc selenium-webdriver

5
推荐指数
1
解决办法
3572
查看次数

Set up a default exception handler when unable to locate an element in selenium?

It's quite often the case that my selenium script will be running, and then all of a sudden it will crash with an error:

<class 'selenium.common.exceptions.NoSuchElementException'>
Message: u'Unable to locate element: {"method":"id","selector":"the_element_id"}' 
<traceback object at 0x1017a9638>
Run Code Online (Sandbox Code Playgroud)

And if I run in interactive mode (python -i myseltest.py), if I simply do something like:

driver.switch_to_window(driver.window_handles[0])
Run Code Online (Sandbox Code Playgroud)

And then run the specific find_element_by_id() again, it will succeed.

有什么办法可以自动尝试driver.switch_to_window() invocation if an exception occurs?

python selenium exception selenium-rc selenium-webdriver

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

使用selenium为MAC OS启动firefox浏览器时出现问题

我正在使用Selenium来测试Java中的网站并尝试在MAC上的Firefox中运行它.但是当我尝试执行下面的代码时

Selenium selenium = new DefaultSelenium("localhost", 4444, "*firefox", "http://www.example.com/");
Run Code Online (Sandbox Code Playgroud)

我收到以下运行时异常

java.lang.RuntimeException: Could not start Selenium session: Failed to start new browser session: Browser not supported: /Users/sumitghosh/Desktop/*firefox3
(Did you forget to add a *?)

Supported browsers include:
  *firefox
  *mock
  *firefoxproxy
  *pifirefox
  *chrome
  *iexploreproxy
  *iexplore
  *firefox3
  *safariproxy
  *googlechrome
  *konqueror
  *firefox2
  *safari
  *piiexplore
  *firefoxchrome
  *opera
  *iehta
  *custom
Run Code Online (Sandbox Code Playgroud)

我也试过更改浏览器*googlechrome,但同样的错误被解雇了!

但是当*safari它被使用时它成功运行.

由于我希望应用程序也可以在Windows和MAC上运行,我正在尝试*firefox*googlechrome运行,但两种浏览器都在Windows和MAC上都提供了例外!

java selenium cross-browser selenium-rc

5
推荐指数
1
解决办法
2137
查看次数

使用C#在Selenium RC中按Enter键

如何使用C#使用Selenium RC按Enter键?

我正在SearchBox使用Selenium。我必须在其中键入一些名称,并且必须按Enter进行搜索。

没有Submit按钮。因此,我必须使用Enter

我尝试过这样的事情

selenium.KeyPress("quicksearchtextcriteria", "13");
Run Code Online (Sandbox Code Playgroud)

但是不起作用。

请帮忙。

注意:我收集了执行此操作的可能方法的集合。参见此处:按Enter键输入硒

c# selenium enter keypress selenium-rc

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

Selenium WebDriver可靠的测试

我知道这个问题以前被问过很多次,但是我仍然找不到适合我的解决方案。在大多数情况下,我使用Selenium WebDriver运行测试时,它们会因“ NoSuchElementException”而失败。我尝试使用显式和隐式等待,但似乎没有任何效果。因此,除了使用Waits之外,还有其他方法可以使测试更可靠吗?

我在FirefoxDriver中使用selenium-java-2.31.0。以下是一些我试图使测试更可靠的代码示例:

public void waitAndClickElement(WebDriver driver, final By selector) {
        Wait<WebDriver> wait = new FluentWait<WebDriver>(driver)
                .withTimeout(50, TimeUnit.SECONDS)
                .pollingEvery(5, TimeUnit.SECONDS)
                .ignoring(NoSuchElementException.class);
        WebElement elementToClick = wait
                .until(new Function<WebDriver, WebElement>() {
                    public WebElement apply(WebDriver driver) {
                        return driver.findElement(selector);
                    }

                });
        waitForElementVisible(driver, selector);
        elementToClick.click();
         }
Run Code Online (Sandbox Code Playgroud)

..和这个:

public WebElement waitForElementPresent(WebDriver driver, final By selector){
    Wait<WebDriver> wait = new FluentWait<WebDriver>(driver)
            .withTimeout(70, TimeUnit.SECONDS)
            .pollingEvery(5, TimeUnit.SECONDS)
            .ignoring(NoSuchElementException.class);
    WebElement elementToClick = wait
            .until(new Function<WebDriver, WebElement>() {
                public WebElement apply(WebDriver driver) {
                    return driver.findElement(selector);
                }
            });
    return elementToClick; …
Run Code Online (Sandbox Code Playgroud)

selenium selenium-rc selenium-webdriver

5
推荐指数
1
解决办法
5563
查看次数