我有一个表单文本字段,其中填充了默认值。我想清除该值并输入空格以断言发生了预期的验证。我正在使用 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 扩展时这不起作用。
我在Visual Studio(C#)中创建Selenium RC测试脚本.我正在努力重新考虑测试; 我所有的测试都在一个文件中.我将非常感谢网站,书籍等的任何输入和/或指示,以了解模块化测试.
我必须在不同的站点(相同的应用程序,但为不同的客户端和登录配置不同)运行相同的测试,这些测试的95%相同.有人愿意提供一些很好的例子或最佳实践吗?
谢谢!
我最近尝试使用selenium RC的GetAttribute方法,但立即遇到了挑战.我试图执行一个非常简单selenium.GetAttribute("//a/@href")但代码抛出一个SeleniumException,消息"错误:无法找到元素属性:// a/@ href".通过替换selenium.GetText("//a[@href]")代替的的getAttribute电话,我确认了一个元素肯定存在,因为这种说法正确的返回链接的文本.
然后我尝试了:
selenium.GetAttribute("document.getElementsByTagName('a')[0].getAttribute('href')")- 同样的问题; 稍有不同的错误消息(并且错误消息缺少最后的括号): "错误:元素document.getElementsByTagName('a')[0] .getAttribute('找不到'href'.请注意,这个确切的表达式在Firebug中正常工作安慰.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中使用非常方便的" 查找"按钮进行的实验表明,它可以很好地处理元素,但是会失败并带有属性.我可以理解,突出属性没有意义,因为属性不是可见的页面元素,但为什么不突出显示包含属性的元素,并使其以不同的颜色?也许不是一项微不足道的任务......
我将上述实验的结果归结为这些问题; 这是我在这里发布的全部目的!这些似乎对我来说都是一个错误,但如果您认为我的使用不正确或有解决方法,请告诉我:
"xpath=//a/@href"定位器,按下查找按钮会产生这个丑陋的消息:"找不到[错误]定位器:xpath = // a/@ href,error = [Exception ..."无法转换JavaScript参数arg 0 [inIFlasher.scrollElementIntoView …假设我有一个表包含许多行,这些行是未知的.exp column1 column2 column3 xxx yyy"搜索个人资料"
每行的Column3包含一个链接"搜索配置文件",现在很清楚,此链接的xpath将根据该行进行更改.现在我想搜索第2列中的字符串,如果存在则需要单击它的column3链接.有人可以告诉我如何搜索并点击它吗?
我在一台机器上启动并运行Selenium Server,PHPUnit和NetBeans,我想成为我的专用测试盒.我如何设置它来修改测试用例(我已经想出那个部分)并告诉测试机远程运行测试?
我有一个包含 3 个测试用例的测试套件,其中第一个测试用例具有其他 2 个测试用例所需的所有变量(类似于它的测试套件数据集)
当我在 selenium IDE 中执行测试套件时(在 IDE 中手动加载测试套件然后运行),一切都很好。
但是我想要一个测试用例执行的报告,所以现在我使用下面的命令来执行测试套件
java -jar "selenium-server jar path" -htmlSuite "*firefox" "baseurl" "TestSuite path" "Results file Path"
现在问题是从命令 propmt 执行测试套件时,
变量存储在第一个测试用例中,在第二个测试用例中未考虑,等等。
所以任何人都可以帮我解决这个问题。
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?
我正在使用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上都提供了例外!
如何使用C#使用Selenium RC按Enter键?
我正在SearchBox使用Selenium。我必须在其中键入一些名称,并且必须按Enter进行搜索。
没有Submit按钮。因此,我必须使用Enter。
我尝试过这样的事情
selenium.KeyPress("quicksearchtextcriteria", "13");
Run Code Online (Sandbox Code Playgroud)
但是不起作用。
请帮忙。
注意:我收集了执行此操作的可能方法的集合。参见此处:按Enter键输入硒
我知道这个问题以前被问过很多次,但是我仍然找不到适合我的解决方案。在大多数情况下,我使用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)