是否有任何应用程序或简单的方法来记录通过的所有命令转换Selenium IDE
到Java (Selenium WebDriver)
?这将更容易,并将节省大量时间.
任何建议将不胜感激.谢谢!
我试图让使用XPath功能的XPath查询lower-case
或upper-case
,但他们似乎并不硒工作(如测试我的XPath之前,我申请的话).
不起作用的示例:
//*[.=upper-case('some text')]
Run Code Online (Sandbox Code Playgroud)
只要我不使用大写和小写,我就可以在复杂路径中找到我需要的节点,甚至使用聚合函数.
有没有人遇到过这个?是否有意义?
谢谢.
我正在为ASP应用程序编写Selenium测试,并且希望在会话未正确初始化时测试这些情况.现在我正在手动清除cookie,但这变得有点麻烦.
(好吧,说实话,我每隔五五次忘记它,不得不重新运行测试...)
在Selenium IDE中是否有办法清除会话cookie或假冒浏览器重新启动?
我有一个相当标准的情况:单击一个按钮,它会加载一个带有进度条或其他内容的转换页面,然后该页面重定向到下一页,这需要一段时间才能加载.
我想在最后一页上运行断言,而不是转换页面.在执行断言之前,如何告诉Selenium IDE等到最终页面加载?
谢谢.
是否可以从Selenium脚本(Selenium IDE中的纯HTML保存脚本)中检索基本URL的值?
我要做的是验证当前的URL使用assertLocation
.但是assertLocation
返回绝对网址.我想将当前网址与相对网址进行比较,而不必*
在网址的开头使用.
我想访问基本字符串,因为我希望能够在不同的站点(各种开发站点+生产站点)上运行测试,但如果我使用的话,*
我无法检查根页面(*/
将是真的对于以/
... 结尾的每个页面
这就是我目前所做的事情:
| assertLocation |*/some-page | |
这就是我想做的事情:
| assertLocation | baseURL +"/ some-page"| |
注意:甚至可以:
使用Selenium IDE,我试图使用带有部分ID和元素标题的XPath单击网页表格中的按钮.我正在使用的XPath是:
xpath=//*[contains(@id, 'ctl00_btnAircraftMapCell')]//*[contains(@title, 'Select Seat')]
Run Code Online (Sandbox Code Playgroud)
这就是我试图点击的按钮示例的整个html代码:
<li id="ctl00_MainContent_repAircraftMap_ctl20_repAircraftMapRow??_ctl00_liAircraftMap??Cell" class="">
<a id="ctl00_MainContent_repAircraftMap_ctl20_repAircraftMapRow??_ctl00_btnAircraftMa??pCell" href="javascript:void(0)" seatnumber="20A" mapbindattribute="1124" title="Select Seat 20A" onclick="SeatClick(1124);"></a>
</li>
Run Code Online (Sandbox Code Playgroud)
我错误地构建了这个吗?它不起作用!
在Selenium IDE 1.3.0中模拟ENTER,ESC,BACKSPACE和DOWN的确切HTML代码是什么?
typeKeys
没有工作,也没有这样做:
<tr>
<td>keyDown</td>
<td>id=zc_0_4_3-real</td>
<td>10</td>
</tr>
<tr>
<td>keyUp</td>
<td>id=zc_0_4_3-real</td>
<td>10</td>
</tr>
<tr>
<td>keyPress</td>
<td>id=zc_0_4_3-real</td>
<td>10</td>
</tr>
Run Code Online (Sandbox Code Playgroud) 我目前正在为我的新项目建立一个开发环境,我正在考虑一件事.我打算使用Yii.我希望自动化功能测试,我已经有了gerrit和Jenkins,工作.
我读了这篇文章,发现selenium有类似html套件的东西.我之前从未听说过,我总是编写我的测试来通过PHPUnit运行.我使用了这里描述的默认Yii功能测试环境.
所以我的问题是,这两种方法的优点和缺点是什么?我已经可以想到一个html套件的pro和con.Pro是,编写测试非常简单 - 只需在Selenium IDE中"单击"它们即可.问题是,我可能不得不在测试之前运行数据库固件,我无法更改它们,或运行它们 - 加载夹具,运行测试,加载夹具,运行测试,但我想这将使测试更多更模糊.您如何看待/您在这方面的经历是什么?
当我在Visual Studio中编写测试时,我通过在Nunit中保存,构建然后运行测试来检查它是否有效(右键单击测试然后运行).
测试工作正常...所以我继续......
现在我已经编写了另一个测试,它可以像我上面保存和测试一样工作.但是,当它们一起运行时,它们不起作用.
以下是我的两个测试,这些测试在作为个体运行时有效但在一起运行时失败:
using System;
using NUnit.Framework;
using OpenQA.Selenium.Support.UI;
using OpenQA.Selenium;
namespace Fixtures.Users.Page1
{
[TestFixture]
public class AdminNavigateToPage1 : SeleniumTestBase
{
[Test]
public void AdminNavigateToPage1()
{
NavigateTo<LogonPage>().LogonAsCustomerAdministrator();
NavigateTo<Page1>();
var headerelement = Driver.FindElement(By.ClassName("header"));
Assert.That(headerelement.Text, Is.EqualTo("Page Title"));
Assert.That(Driver.Url, Is.EqualTo("http://localhost/Page Title"));
}
[Test]
public void AdminNavigateToPage1ViaMenu()
{
NavigateTo<LogonPage>().LogonAsCustomerAdministrator();
Driver.FindElement(By.Id("menuitem1")).Click();
Driver.FindElement(By.Id("submenuitem4")).Click();
var headerelement = Driver.FindElement(By.ClassName("header"));
Assert.That(headerelement.Text, Is.EqualTo("Page Title"));
Assert.That(Driver.Url, Is.EqualTo("http://localhost/Page Title"));
}
}
}
Run Code Online (Sandbox Code Playgroud)
当第二次测试失败时,因为它们一起运行
Nunit介绍了这个:
Sse.Bec.Web.Tests.Fixtures.ManageSitesAndUsers.ChangeOfPremises.AdminNavigateToChangeOfPremises.AdminNavigateToPageChangeOfPremisesViaMenu:OpenQA.Selenium.NoSuchElementException:找不到元素
这一行突出显示:
var headerelement = Driver.FindElement(By.ClassName("header"));
Run Code Online (Sandbox Code Playgroud)
有没有人知道为什么我的代码在一起运行时失败,但在单独运行时通过?
任何答案将不胜感激!
我有一个带有表单的网页,并且有一个使用jquery自动完成功能的字段.
这是用户名返回1个或多个结果后HTML呈现的方式.
但是我无法弄清楚如何让Selenium"点击"一个结果.
我可以做一个jQuery类型的选择器.例如
$(".ul.ui-autocomplete li:first a")
Run Code Online (Sandbox Code Playgroud)