問題描述
我正在嘗試從下拉列表中選擇一個選項,以使用量角器進行角度 e2e 測試.
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>
我試過了:
ptor.findElement(protractor.By.css('select option:1')).click();
這給了我以下錯誤:
指定了無效或非法的字符串構(gòu)建信息:版本:'2.35.0',修訂:'c916b9d',時間:'2013-08-12 15:42:01'系統(tǒng)信息:os.name:'Mac OS X',os.arch:'x86_64',os.version:'10.9',java.version:'1.6.0_65'驅(qū)動信息:driver.version:未知
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
我也試過了:
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:元素當(dāng)前不可見,因此可能無法與之交互命令持續(xù)時間或超時:9 毫秒構(gòu)建信息:版本:'2.35.0',修訂:'c916b9d',時間:'2013-08-12 15:42:01'系統(tǒng)信息: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驅(qū)動信息:org.openqa.selenium.firefox.FirefoxDriver功能 [{platform=MAC,acceptSslCerts=true,javascript Enabled=true,browserName=firefox,rotatable=false,locationContextEnabled=true,version=24.0,cssSelectorsEnabled=true,databaseEnabled=true,handlesAlerts=true,browserConnectionEnabled=true,nativeEvents=false, webStorageEnabled=true, applicationCacheEnabled=false, takeScreenshot=true}]
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.
推薦答案
我也遇到了類似的問題,最后寫了一個幫助函數(shù)來選擇下拉值.
I had a similar problem, and eventually wrote a helper function that selects dropdown values.
我最終決定我可以通過選項編號進行選擇,因此編寫了一個方法,該方法接受一個元素和 optionNumber,并選擇該 optionNumber.如果 optionNumber 為 null,則不選擇任何內(nèi)容(不選擇下拉菜單).
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.all(by.tagName('option'))
.then(function(options){
options[optionNum].click();
});
}
};
如果您想了解更多詳細信息,我寫了一篇博文,其中還包括在下拉列表中驗證所選選項的文本:http://technpol.wordpress.com/2013/12/01/protractor-and-dropdowns-validation/
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/
這篇關(guān)于如何在下拉 protractorjs e2e 測試中選擇選項的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網(wǎng)!