- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我很难理解有关 selenium Grid/RC 的一些概念。我需要的是为测试提供特定的环境(ie6-on-xp、ie7-on-xp 等)。对于我一直在阅读的内容,grid_configuration.yml
中的浏览器行没有提及我的 MSIE
或 Firefox
版本我正在运行。所以我想不出我可以用哪种形式告诉 Grid/RC 我想要一些特定的浏览器和运行它们的路径(RC 如何知道要运行哪个 exe?)
其次,我想运行这些浏览器的便携版本。我只看到在测试中指定,而不是在 RC 的命令行中运行它们。根据测试,这是做到这一点的方法吗?
最佳答案
我会分解你需要的信息来回答你的问题
What I need is to provide specific environments (ie6-on-xp, ie7-on-xp, etc) to the tests.
既然你不能在同一台机器上有多个 IE 实例,我知道有一些应用程序允许你这样做,但根据我的经验,它们导致的问题多于解决它们的问题。理想情况下,您希望不同的机器运行测试。通过这样做,您还为您的开发人员设置了一个 selenium 农场,因为他们可以针对特定实例进行测试。因此,将网格设置为基础设施是一个很好的步骤。
For what I've been reading, the browser line in grid_configuration.yml do not make any reference of what version of MSIE or Firefox I'm running. So I can't get my head around in which form I can tell Grid/RC that I want some specific browsers and the path to run them (how RC knows which exe to run?)
YAML 只是让您知道网格可以处理什么。启动网格时,您需要确保传入类似的配置。将 Se:GRID 想象成 Se:RC,只是你不关心 RC 服务器在哪里,因为你与一个中心位置对话,它会为你解决其余的问题。
如果您需要它针对特定项目运行测试,那么您需要在测试设置中处理它。有一个普遍的误解,认为所有测试在每个浏览器中都将以相同的方式运行。如果您在测试中从不依赖 XPath 或 CSS 选择器,就会发生这种情况,因为浏览器处理此问题的方式总是略有不同,而细微的差异会导致不稳定的测试,这应该始终避免。
指定用于测试的浏览器的一种方法是拥有一个中央配置文件。在 C# 中,这将使用具有每个浏览器集合的 app.config 并执行
配置
<Firefox>
<addKey browserVersion='3.5.6' OS='WindowsXP'>
</Firefox>
中央配置类查看 1 个元素
public class BoothElement : ConfigurationElement
{
[ConfigurationProperty("browserVersion", DefaultValue = "", IsKey = true, IsRequired = true)]
public string browserVersion
{
get
{
return ((string)(base["browserVersion"]));
}
set
{
base["browserVersion"] = value;
}
}
测试
selenium = new DefaultSelenium(HubPort, HubPort, browserVersion, SUTServer);
selenium.Open("/test.htm");
//Rest of the test
在 python 中,您可以在包含在所有测试中的模块中创建一个数组
include.py
hubServer = 'hub'
hubPort = 5555
sut = 'http://serverUnderTest'
firefox = [hubServer,hubPort,"\*chrome",sut]
iexplore = [hubServer,hubPort,"\*iehta",sut]
测试.py
sel = selenium(firefox)
sel.open("/test.html")
#rest of the test
在使用 Selenium Grid 时,请尝试将其更多地视为测试基础架构帮助框架,希望它能为您提供更多帮助。
Second, I'd like to run portable versions of those browsers. I've only seen that specified in the tests, and not in the RC's command line to run them. That is the way to do it, per test?
我从来没有尝试让 Selenium 在移动浏览器上工作,我认为它不会很好地工作,但是对于目前处于 alpha 阶段的 Selenium 2,Android 支持测试应用程序。
根据评论编辑
- name: "Firefox on OS X"
browser: "*firefox"
- name: "Firefox on Linux"
browser: "*firefox"
- name: "IE on Windows"
browser: "*iehta"
- name: "Safari on OS X"
browser: "*safari"
假设我们有上述设置,根据 YAML 文件我们有许多不同的 *firefox 实例。所以要在我们的测试中调用那些不同的,我们的浏览器设置命令看起来像
selenium.Start(hubHost, hubPort, "Linux 上的 Firefox", "http://serverUnderTest");
或 selenium.Start(hubHost, hubPort, "Firefox on OS X", "http://serverUnderTest");
集线器将为您将其转换为 *firefox。我更喜欢为我的环境使用非常精细的名称,而不是通常的 *firefox,这样如果出现故障,它更容易发现它在哪里以及在哪个特定浏览器上。
关于selenium - 在 Selenium Grid 中为 IE6(和多个浏览器)设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1944209/
我需要将文本放在 中在一个 Div 中,在另一个 Div 中,在另一个 Div 中。所以这是它的样子: #document Change PIN
奇怪的事情发生了。 我有一个基本的 html 代码。 html,头部, body 。(因为我收到了一些反对票,这里是完整的代码) 这是我的CSS: html { backgroun
我正在尝试将 Assets 中的一组图像加载到 UICollectionview 中存在的 ImageView 中,但每当我运行应用程序时它都会显示错误。而且也没有显示图像。 我在ViewDidLoa
我需要根据带参数的 perl 脚本的输出更改一些环境变量。在 tcsh 中,我可以使用别名命令来评估 perl 脚本的输出。 tcsh: alias setsdk 'eval `/localhome/
我使用 Windows 身份验证创建了一个新的 Blazor(服务器端)应用程序,并使用 IIS Express 运行它。它将显示一条消息“Hello Domain\User!”来自右上方的以下 Ra
这是我的方法 void login(Event event);我想知道 Kotlin 中应该如何 最佳答案 在 Kotlin 中通配符运算符是 * 。它指示编译器它是未知的,但一旦知道,就不会有其他类
看下面的代码 for story in book if story.title.length < 140 - var story
我正在尝试用 C 语言学习字符串处理。我写了一个程序,它存储了一些音乐轨道,并帮助用户检查他/她想到的歌曲是否存在于存储的轨道中。这是通过要求用户输入一串字符来完成的。然后程序使用 strstr()
我正在学习 sscanf 并遇到如下格式字符串: sscanf("%[^:]:%[^*=]%*[*=]%n",a,b,&c); 我理解 %[^:] 部分意味着扫描直到遇到 ':' 并将其分配给 a。:
def char_check(x,y): if (str(x) in y or x.find(y) > -1) or (str(y) in x or y.find(x) > -1):
我有一种情况,我想将文本文件中的现有行包含到一个新 block 中。 line 1 line 2 line in block line 3 line 4 应该变成 line 1 line 2 line
我有一个新项目,我正在尝试设置 Django 调试工具栏。首先,我尝试了快速设置,它只涉及将 'debug_toolbar' 添加到我的已安装应用程序列表中。有了这个,当我转到我的根 URL 时,调试
在 Matlab 中,如果我有一个函数 f,例如签名是 f(a,b,c),我可以创建一个只有一个变量 b 的函数,它将使用固定的 a=a1 和 c=c1 调用 f: g = @(b) f(a1, b,
我不明白为什么 ForEach 中的元素之间有多余的垂直间距在 VStack 里面在 ScrollView 里面使用 GeometryReader 时渲染自定义水平分隔线。 Scrol
我想知道,是否有关于何时使用 session 和 cookie 的指南或最佳实践? 什么应该和什么不应该存储在其中?谢谢! 最佳答案 这些文档很好地了解了 session cookie 的安全问题以及
我在 scipy/numpy 中有一个 Nx3 矩阵,我想用它制作一个 3 维条形图,其中 X 轴和 Y 轴由矩阵的第一列和第二列的值、高度确定每个条形的 是矩阵中的第三列,条形的数量由 N 确定。
假设我用两种不同的方式初始化信号量 sem_init(&randomsem,0,1) sem_init(&randomsem,0,0) 现在, sem_wait(&randomsem) 在这两种情况下
我怀疑该值如何存储在“WORD”中,因为 PStr 包含实际输出。? 既然Pstr中存储的是小写到大写的字母,那么在printf中如何将其给出为“WORD”。有人可以吗?解释一下? #include
我有一个 3x3 数组: var my_array = [[0,1,2], [3,4,5], [6,7,8]]; 并想获得它的第一个 2
我意识到您可以使用如下方式轻松检查焦点: var hasFocus = true; $(window).blur(function(){ hasFocus = false; }); $(win
我是一名优秀的程序员,十分优秀!