我很难找到关于 Selenium 2 for PHPUnit 的任何信息,但我可以“查看”以“弄清楚”的源代码和测试除外。每个人的最爱似乎是
https://github.com/sebastianbergmann/phpunit-selenium/blob/master/Tests/Selenium2TestCaseTest.php
...但我肯定不必挖掘数百行源代码来获得简单问题的答案吗?我在哪里可以找到初学者指南、基本文档或任何东西?
最佳答案
啊哈时刻到了。将为下一个在这些荒凉困惑的荒野中徘徊的可怜灵魂发帖。
当 Selenium 说“Selenium 2”时,他们喜欢说“Selenium 2 = Selenium 服务器 + WebDriver”。
PHPUnit 人员的诀窍是 WebDriver 部分,它在 PHPUnit 中相当。 Selenium 已经用其他几种语言编写了 WebDrivers,还有一些用于 PHP 的第三方,我还没有尝试过,因为我现在的目标是 PHPUnit。 WebDriver 基本上是一种在 DOM 中运行和抓取元素的方式。在 http://docs.seleniumhq.org/docs/03_webdriver.jsp 有一个很好的概述。 .
当 PHPUnit 说“Selenium 2”时,他们的意思是他们编写的类可以完成 WebDriver 中的大部分工作,但他们是他们不称其为 WebDriver,而是称其为 Selenium 2。
由于 PHPUnit 的自制版本,它们的方法命名与 Java 或 C# 版本略有不同。这就是为什么每个人都对the PHPUnit test case如此兴奋的原因因为在 webdriver 文档中找到您想要的方法后,它可以很容易地猜测您要查找的内容。
否则,显然 PHPUnit 中的大多数其他功能都坚持原来的 SeleniumTestCase东西;我在下面编译了一些链接,以稍微集中我的信息。 Selenium 1 没有“死”,但它已经老了。 PHPUnit 仍然使用来自其 Selenium 1 实现的大量架构,而 PHPUnit 的 Selenium 2 并不是真正的那样,而是某种 Selenium 1++。
因此,没有理由去搜索源代码,只需尝试将 PHPUnit 测试用例与 WebDriver 文档相匹配即可。此外,教程中的一些方法 SeleniumTestCase在 Selenium2TestCase 中更改了名称,但不要害怕,它仍然可以正常工作,只是有点困惑。
您可能会问,“为什么不直接使用 SeleniumTestCase 呢?”好吧,似乎对其他浏览器的支持需要 WebDriver,所以如果你想退出 Firefox,你需要 Selenium2TestCase (我可能是错的)。
这是我在搜索时发现的一些有用链接:
Selenium 服务器命令行选项,16-06-2013,不完整,缺少类似 -singleWindow 的内容: http://eswarg.blogspot.com/2013/06/selenium-server-commandline-options.html
更多命令行选项,4 岁:http://www.grails.org/Selenium+RC+Configuration
Selenium 服务器命令行帮助,迄今为止我找到的最完整的文档:
java -jar selenium-server.jar -h
来自命令行的 Chrome webdriver:How do I get chrome working with selenium, using php webdriver?
来自命令行的 IE webdriver:Howto start InternetExplorerDriver in PHPUnit tests
Selenium 中多个浏览器的 PHPUnit 配置 XML http://phpunit.de/manual/3.7/en/appendixes.configuration.html#appendixes.configuration.selenium-rc
Selenium2TestCase 的文档类 (!) http://apigen.juzna.cz/doc/sebastianbergmann/phpunit-selenium/class-PHPUnit_Extensions_Selenium2TestCase.html
当然,还有神秘的 PHPUnit Selenium 文档:http://phpunit.de/manual/3.7/en/selenium.html
要解决我上面的多浏览器问题,仍然可以使用静态 $browser来自 SeleniumTestCase 的图案,但是 browser索引已更改为 browserName :
public static $browsers = array(
array(
'name' => 'Internet Explorer',
'browserName' => 'iexplore', // not 'browser'
'host' => 'localhost',
'port' => 4444,
'timeout' => 30000,
),
};
请注意,Phing 不支持 <selenium>如果您使用的是 XML 配置,请标记。
关于php - PHPUnit 的 Selenium 2 文档到底在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19106365/
matlab打开matlab,用最简单的imread方法读取一个图像clcclearimg_h=imread('hua.jpg');返回一个数组(矩阵),往往是a*b*cunit8类型解释一下这个三维数组的意思,行数、数和层数,unit8:指数据类型,无符号八位整形,可理解为0~2^8的数三个层数分别代表RGB三个通道图像rgb最常用的是24-位实现方法,即RGB每个通道有256色阶(2^8)。基于这样的24-位RGB模型的色彩空间可以表现256×256×256≈1670万色当imshow传入了一个二维数组,它将以灰度方式绘制;可以把图像拆分为rgb三层,可以以灰度的方式观察它figure(1
本文主要介绍在使用Selenium进行自动化测试或者任务时,对于使用了iframe的页面,如何定位iframe中的元素文章目录场景描述解决方案具体代码场景描述当我们在使用Selenium进行自动化测试的时候,可能会遇到一些界面或者窗体是使用HTML的iframe标签进行承载的。对于iframe中的标签,如果直接查找是无法找到的,会抛出没有找到元素的异常。比如近在咫尺的例子就是,CSDN的登录窗体就是使用的iframe,大家可以尝试通过F12开发者模式查看到的tag_name,class_name,id或者xpath来定位中的页面元素,会抛出NoSuchElementException异常。解决
我有一个使用SeleniumWebdriver和Nokogiri的Ruby应用程序。我想选择一个类,然后对于那个类对应的每个div,我想根据div的内容执行一个Action。例如,我正在解析以下页面:https://www.google.com/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#q=puppies这是一个搜索结果页面,我正在寻找描述中包含“Adoption”一词的第一个结果。因此机器人应该寻找带有className:"result"的div,对于每个检查它的.descriptiondiv是否包含单词“adoption
假设我有模型Topics和Posts,其中Topichas_many:posts和Postbelongs_to:topic。此时我的数据库中已经有了一些东西。如果我进入Rails控制台并输入Topic.find(1).posts我相信我得到了一个CollectionProxy对象。=>#]>我可以对此调用.each以获得枚举器对象。=>#]:each>我对CollectionProxy如何处理.each感到困惑。我意识到它在某些时候是继承的,但我一直在阅读API文档,他们并没有说得很清楚CollectionProxy是从什么继承的,除非我遗漏了一些明显的东西。Thispage似乎并没有
我将Cucumber与Ruby结合使用。通过Selenium-Webdriver在Chrome中运行测试时,我想将下载位置更改为测试文件夹而不是用户下载文件夹。我当前的chrome驱动程序是这样设置的:Capybara.default_driver=:seleniumCapybara.register_driver:seleniumdo|app|Capybara::Selenium::Driver.new(app,:browser=>:chrome,desired_capabilities:{'chromeOptions'=>{'args'=>%w{window-size=1920,1
我以为它们存储在cookie中-但不,检查cookie没有任何结果。session也不存储它们。那么,我在哪里可以找到它们?我需要这个来直接设置它们(而不是通过flashhash)。 最佳答案 它们存储在inyoursessionstore.自rails2.0以来的默认设置是cookie存储,但请检查config/initializers/session_store.rb以检查您是否使用默认设置以外的东西。 关于ruby-on-rails-闪存消息存储在哪里?,我们在StackOverf
Ruby有一些不错的文档生成器,例如Yard、rDoc,甚至Glyph。问题是Sphinx可以做网站、PDF、epub、LaTex等。它在重组文本中完成所有这些事情。在Ruby世界中有替代方案吗?也许是程序的组合?如果我也能使用Markdown就更好了。 最佳答案 自1.0版以来,Sphinx有了“域”的概念,它是从Python和/或C以外的语言标记代码实体(如方法调用、对象、函数等)的方法。有一个rubydomain,所以你可以只使用Sphinx本身。您唯一会缺少的(我认为)是Sphinx使用autodoc从源代码自动创建文档
我刚读了这个答案Convertingupper-casestringintotitle-caseusingRuby.有如下一行代码"abc".split(/(\W)/).map(&:capitalize).join&:capitalize到底是什么?在我自己将它放入irb之前,我会告诉你,它不是有效的ruby语法。它必须是某种Proc对象,因为Array#map通常需要一个block。但事实并非如此。如果我单独将它放入irb,我会得到syntaxerror,unexpectedtAMPER。 最佳答案 foo(&a_proc_o
这里还有一个新手问题:require'tasks/rails'我在每个Rails项目的根路径中的Rakefile中看到了这一行。我猜这行用于要求vendor/rails/railties/lib/tasks/rails.rb加载所有rake任务:$VERBOSE=nil#LoadRailsrakefileextensionsDir["#{File.dirname(__FILE__)}/*.rake"].each{|ext|loadext}#LoadanycustomrakefileextensionsDir["#{RAILS_ROOT}/lib/tasks/**/*.rake"].so
我怀念ipython的一件事是它有一个?为特定功能挖掘文档的运算符。我知道ruby有一个类似的命令行工具,但是我在irb中调用它非常不方便。ruby/irb有类似的东西吗? 最佳答案 Pry是IPython的Ruby版本,它支持?命令来查找有关方法的文档,但语法略有不同:pry(main)>?File.dirnameFrom:file.cinRubyCore(CMethod):Numberoflines:6visibility:publicsignature:dirname()Returnsallcomponentsofthef