如何选择下拉选项下protractorjs端到端测试 [英] How to select option in drop down protractorjs e2e tests

查看:1053
本文介绍了如何选择下拉选项下protractorjs端到端测试的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想选择从下拉用量角器角端到端测试的选项。

下面是选择选项的code片断:

 <!选择一个id =locregion级=create_select NG-质朴的NG-无效NG-无效,要求要求=NG-禁用=organization.id = =未定义NG选项=o.id作为o.name邻组织中NG模型=organization.parent_id>
    <?期权价值=选择=选择>< /选项>
    <期权价值=0> Ranjans手机测试与LT; /选项>
    <期权价值=1> BeaverBox测试与LT; /选项>
    <期权价值=2> BadgerBox< /选项>
    <期权价值=3> CritterCase< /选项>
    <期权价值=4> BoxLox< /选项>
    <期权价值=5> BooBoBum< /选项>
< /选择>

我曾尝试:

  ptor.findElement(protractor.By.css('选择选项:1'))点击();

这给了我以下错误:

指定了无效或非法字符串
构建信息:版本:2.35.0,修订版:'c916b9d,时间:2013年8月12日15时42分01秒
系统信息:os.name:Mac OS X的,os.arch:x86_64的',os.version:'10 .9,java.version:1.6.0_65
驱动方式:driver.version:未知

我也尝试:

<$p$p><$c$c>ptor.findElement(protractor.By.xpath('/html/body/div[2]/div/div[4]/div/div/div/div[3]/ng-include/div/div[2]/div/div/organization-form/form/div[2]/select/option[3]')).click();

这给了我以下错误:


  

ElementNotVisibleError:元素当前不可见,因此,任何人不得互动
  命令持续时间或超时:9毫秒
  构建信息:版本:2.35.0,修订版:'c916b9d,时间:2013年8月12日15时42分01秒
  系统信息:os.name:Mac OS X的,os.arch:x86_64的',os.version:'10 .9,java.version:1.6.0_65
  会话ID:bdeb8088-d8ad-0f49-aad9-82201c45c63f
  驱动方式:org.openqa.selenium.firefox.FirefoxDriver
  功能[{平台= MAC,acceptSslCerts = TRUE,javascriptEnabled = TRUE,browserName =火狐,旋转=假,locationContextEnabled = TRUE,版本= 24.0,cssSelectorsEnabled = TRUE,databaseEnabled = TRUE,handlesAlerts = TRUE,browserConnectionEnabled = TRUE,nativeEvents = FALSE ,webStorageEnabled = TRUE,applicationCacheEnabled =假,takesScreenshot =真}]


任何人都可以请帮我解决这个问题或者抛出一些轻什么我可能是错在这里做。


解决方案

我有一个类似的问题,并最终写道,选择下拉值的辅助函数。

我最终决定我很好选择由选项的数值,因此写了接受一个元素和OPTIONNUMBER的方法,并选择了OPTIONNUMBER。如果OPTIONNUMBER为null,它会选择什么(离开下拉菜单选择)。

  VAR selectDropdownbyNum =功能(元素,optionNum){
  如果(optionNum){
    VAR的选择= element.findElements(by.tagName('选项'))
      。然后(功能(选件){
        选项​​[optionNum]。点击();
      });
  }
};

我写了一篇博客文章,如果您想了解更多的细节,这也包括在验证一个下拉所选选项的文本:<一href=\"http://technpol.word$p$pss.com/2013/12/01/protractor-and-dropdowns-validation/\">http://technpol.word$p$pss.com/2013/12/01/protractor-and-dropdowns-validation/

I am trying to select an option from a drop down for the angular e2e tests using protractor.

Here is the code snippet of the select option:

<select id="locregion" class="create_select ng-pristine ng-invalid ng-invalid-required" required="" ng-disabled="organization.id !== undefined" ng-options="o.id as o.name for o in organizations" ng-model="organization.parent_id">
    <option value="?" selected="selected"></option>
    <option value="0">Ranjans Mobile Testing</option>
    <option value="1">BeaverBox Testing</option>
    <option value="2">BadgerBox</option>
    <option value="3">CritterCase</option>
    <option value="4">BoxLox</option>
    <option value="5">BooBoBum</option>
</select>

I have tried:

ptor.findElement(protractor.By.css('select option:1')).click();

This gives me the following error:

An invalid or illegal string was specified Build info: version: '2.35.0', revision: 'c916b9d', time: '2013-08-12 15:42:01' System info: os.name: 'Mac OS X', os.arch: 'x86_64', os.version: '10.9', java.version: '1.6.0_65' Driver info: driver.version: unknown

I have also tried:

ptor.findElement(protractor.By.xpath('/html/body/div[2]/div/div[4]/div/div/div/div[3]/ng-include/div/div[2]/div/div/organization-form/form/div[2]/select/option[3]')).click();

This gives me the following error:

ElementNotVisibleError: Element is not currently visible and so may not be interacted with Command duration or timeout: 9 milliseconds Build info: version: '2.35.0', revision: 'c916b9d', time: '2013-08-12 15:42:01' System info: os.name: 'Mac OS X', os.arch: 'x86_64', os.version: '10.9', java.version: '1.6.0_65' Session ID: bdeb8088-d8ad-0f49-aad9-82201c45c63f Driver info: org.openqa.selenium.firefox.FirefoxDriver Capabilities [{platform=MAC, acceptSslCerts=true, javascriptEnabled=true, browserName=firefox, rotatable=false, locationContextEnabled=true, version=24.0, cssSelectorsEnabled=true, databaseEnabled=true, handlesAlerts=true, browserConnectionEnabled=true, nativeEvents=false, webStorageEnabled=true, applicationCacheEnabled=false, takesScreenshot=true}]

Can anyone please help me with this problem or throw some light on what i might be doing wrong here.

解决方案

I had a similar problem, and eventually wrote a helper function that selects dropdown values.

I eventually decided that I was fine selecting by option number, and therefore wrote a method that takes an element and the optionNumber, and selects that optionNumber. If the optionNumber is null it selects nothing (leaving the dropdown unselected).

var selectDropdownbyNum = function ( element, optionNum ) {
  if (optionNum){
    var options = element.findElements(by.tagName('option'))   
      .then(function(options){
        options[optionNum].click();
      });
  }
};

I wrote a blog post if you want more detail, it also covers verifying the text of the selected option in a dropdown: http://technpol.wordpress.com/2013/12/01/protractor-and-dropdowns-validation/

这篇关于如何选择下拉选项下protractorjs端到端测试的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆