ড্রপ ডাউন প্রটেক্টরজ ই 2 ই পরীক্ষায় কীভাবে বিকল্প নির্বাচন করবেন


121

আমি প্রোটেক্টর ব্যবহার করে কৌণিক e2e পরীক্ষার জন্য ড্রপ ডাউন থেকে একটি বিকল্প নির্বাচন করার চেষ্টা করছি।

এখানে নির্বাচন বিকল্পের কোড স্নিপেট রয়েছে:

<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();

এটি আমাকে নিম্নলিখিত ত্রুটি দেয়:

একটি অবৈধ বা অবৈধ স্ট্রিং নির্দিষ্ট করা হয়েছিল বিল্ড তথ্য: সংস্করণ: '2.35.0', পুনর্বিবেচনা: 'c916b9d', সময়: '2013-08-12 15:42:01' সিস্টেম তথ্য: os.name: 'ম্যাক ওএস এক্স' , os.arch: 'x86_64', os.version: '10 .9 ', java.version:' 1.6.0_65 'ড্রাইভারের তথ্য: ড্রাইভার.বর্তন: অজানা

আমি চেষ্টাও করেছি:

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();

এটি আমাকে নিম্নলিখিত ত্রুটি দেয়:

এলিমেন্টনটভিজিবল ইরার: এলিমেন্টটি বর্তমানে দৃশ্যমান নয় এবং তাই কমান্ডের সময়সীমা বা সময়সীমার সাথে ইন্টারঅ্যাক্ট করা হতে পারে: 9 মিলিসেকেন্ড বিল্ড তথ্য: সংস্করণ: '2.35.0', পুনর্বিবেচনা: 'c916b9d', সময়: '2013-08-12 15:42: 01 'সিস্টেম তথ্য: os.name:' ম্যাক ওএস এক্স ', os.arch:' x86_64 ', os.version: '10 .9', java.version: '1.6.0_65' সেশন আইডি: bdeb8088-d8ad-0f49-aad9 -82201c45c63f ড্রাইভারের তথ্য: org.openqa.selenium.firefox.FirefoxDriver সক্ষমতা [{প্ল্যাটফর্ম = ম্যাক, স্বীকৃতিস্ল্যাসার্টস = সত্য, জাভাস্ক্রিপ্টএনেবলড = ট্রু, ব্রাউজারনেম = ফায়ারফক্স, আবর্তনযোগ্য = মিথ্যা, লোকেশন কনটেক্সটএনএবলড, ট্রুথ = ২৪.০, সিএসএসএন, সক্ষম = সত্য, হ্যান্ডলস অ্যালার্টস = সত্য, ব্রাউজার সংযোগ-সক্ষম = সত্য, নেটিভেনটস = মিথ্যা, ওয়েবস্টোরেজএনবলড = সত্য, অ্যাপ্লিকেশনক্যাশনেবল = মিথ্যা, স্ক্রিনশট = সত্য}]

যে কেউ দয়া করে আমাকে এই সমস্যায় সহায়তা করতে পারেন বা আমি এখানে কী ভুল করছি তা নিয়ে কিছুটা আলোকপাত করতে পারেন।

উত্তর:


88

আমারও একই সমস্যা ছিল এবং অবশেষে একটি সহায়ক ফাংশন লিখেছিল যা ড্রপডাউন মান নির্বাচন করে।

আমি অবশেষে সিদ্ধান্ত নিয়েছি যে আমি বিকল্প নম্বর দ্বারা নির্বাচন করে ভাল ছিলাম, এবং সেইজন্য একটি পদ্ধতি লিখেছিলাম যা একটি উপাদান এবং অপশন নম্বরটি গ্রহণ করে এবং সেই বিকল্পটি সংখ্যাটি নির্বাচন করে। বিকল্প নম্বরটি যদি নাল হয় তবে এটি কিছুই নির্বাচন করে না (ড্রপডাউনটি নির্বাচিত না রেখে)।

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/


1
আমার পক্ষে কাজ করেনি, এলিমেন্ট পেয়েছেন ind
জাস্টিন

251

আমার জন্য একটি কবজ মত কাজ

element(by.cssContainingText('option', 'BeaverBox Testing')).click();

আশা করি এটা সাহায্য করবে.


2
গৌণ নোট - শুধুমাত্র v0.22 (আমি কেবল আজই আমার কোডটি প্রতিস্থাপন করতে গিয়েছিলাম, এবং এটি পেতে আপগ্রেড করতে হয়েছিল)
পলএল

এটি ব্যবহার করে উপাদানগুলিকে লক্ষ্য করার কোনও উপায় আছে কি? যেমন ডুপ্লিকেট স্টেট নির্বাচন মেনু থাকার।
ক্রিস্টোফার মার্শাল 21

11
ক্রিস্টোফার ElementFinderচেইন-সক্ষম, তাই আপনি এটি করতে পারেন:element(by.css('.specific-select')).element(by.cssContainingText('option', 'BeaverBox Testing')).click();
জোয়েল কর্নব্লুহ

6
নোট করুন যে আপনি আংশিক ম্যাচ পেতে পারেন, তাই 'ছোট' মিলবে 'অতিরিক্ত ছোট'।
ট্রুয়েল উইল

3
ট্রুউইলের মন্তব্যে যুক্ত করার জন্য: এই সমাধানটির নীচের দিকটি হ'ল যদি আপনার কাছে দুটি অনুরূপ বিকল্প থাকে তবে এটি সর্বশেষ পাওয়া বিকল্পটি ব্যবহার করবে - যা ভুল নির্বাচনের ভিত্তিতে ত্রুটিগুলি ছুঁড়ে ফেলেছে। আমার জন্য যা কাজ করেছিল তা ছিল স্ট্যাকওভারফ্লো.com
মাইক W

29

একটি মার্জিত পদ্ধতির মধ্যে অন্যান্য সেলেনিয়াম ভাষার বাইন্ডিংগুলি অফ-বক্স-অফার দেয় (যেমন পাইথন বা জাভাতে ক্লাস) এর অনুরূপ একটি বিমূর্ততা তৈরি করা জড়িত Select

আসুন একটি সুবিধাজনক মোড়ক তৈরি করুন এবং এর ভিতরে প্রয়োগের বিশদটি গোপন করুন:

var SelectWrapper = function(selector) {
    this.webElement = element(selector);
};
SelectWrapper.prototype.getOptions = function() {
    return this.webElement.all(by.tagName('option'));
};
SelectWrapper.prototype.getSelectedOptions = function() {
    return this.webElement.all(by.css('option[selected="selected"]'));
};
SelectWrapper.prototype.selectByValue = function(value) {
    return this.webElement.all(by.css('option[value="' + value + '"]')).click();
};
SelectWrapper.prototype.selectByPartialText = function(text) {
    return this.webElement.all(by.cssContainingText('option', text)).click();   
};
SelectWrapper.prototype.selectByText = function(text) {
    return this.webElement.all(by.xpath('option[.="' + text + '"]')).click();   
};

module.exports = SelectWrapper;

ব্যবহারের উদাহরণ (এটি কতটা পঠনযোগ্য এবং সহজে ব্যবহারযোগ্য তা নোট করুন):

var SelectWrapper  = require('select-wrapper');
var mySelect = new SelectWrapper(by.id('locregion'));

# select an option by value
mySelect.selectByValue('4');

# select by visible text
mySelect.selectByText('BoxLox');

নিম্নলিখিত বিষয় থেকে সমাধান নেওয়া: নির্বাচন -> বিকল্প বিমূর্ততা নির্বাচন করুন


এফওয়াইআই, একটি বৈশিষ্ট্য অনুরোধ তৈরি করেছে: নির্বাচন করুন -> বিকল্প বিমূর্ততা


আপনি কেন নির্বাচিত আনন্দগুলিতে 'রিটার্ন' ব্যবহার করেন? এটা কি প্রয়োজনীয়?
মিশিগেল

1
@ মিচিয়েল ভাল পয়েন্ট আপনি যদি প্রতিশ্রুতি দিয়ে সুস্পষ্টভাবে সমাধান করতে চান তবে প্রয়োজনীয় হতে পারে click()। ধন্যবাদ।
অ্যালেক্সেক্স

20
element(by.model('parent_id')).sendKeys('BKN01');

1
এটি আমার পক্ষে সবচেয়ে সঠিক। CssContainingText এর সাহায্যে আপনি পছন্দসই ক্ষেত্রটি ক্যাপচার করার বিষয়টি নিশ্চিত করবেন না। আপনার যদি একই মানগুলির সাথে 2 টি নির্বাচনবক্স থাকে তবে কেবল ভাবুন think +1
ইয়োব্রে

4
দুঃখিত, BKN01 কি?
জিফ্রিড

1
@ গ্রেফ্রিড বি কেএন01 হ'ল পাঠ্যটি যা আপনি ড্রপ ডাউন থেকে নির্বাচন করতে চান।
মিলানযাদভ

@ গালব্রাচা দুঃখিত আপনি পেলেন না
মিলানযাদভ

আপনার যদি অন্য বিকল্প থাকে যা BKN01 এর মতো একই প্রিফেক্স ভাগ করে, এটি কার্যকর হবে না। একটি এলোমেলো একটি বাছাই করা হবে।
zs2020

15

একটি নির্দিষ্ট বিকল্প অ্যাক্সেস করতে আপনার নবম-সন্তানের () নির্বাচক সরবরাহ করতে হবে:

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

এটি প্রশ্নের উত্তর সরবরাহ করে না। কোনও লেখকের কাছ থেকে সমালোচনা বা স্পষ্টতার জন্য অনুরোধ জানাতে, তাদের পোস্টের নীচে একটি মন্তব্য দিন।
jpw

@jpw আমার উত্তর ভুল। অথবা এটি কেবল আমার উত্তরটির সূত্রটি ভুল বলে মনে হচ্ছে?
bekite

একটি প্রশ্ন হিসাবে একটি উত্তর গঠনের কারণ। আমি জানি না এটি সঠিক উত্তর কিনা। যদি এটি হয় তবে আপনার এটি যেমন তৈরি করা উচিত।
jpw

3
@ ব্যাকাইট আমার পক্ষে কাজ করেনি S তবুও ত্রুটিটি পাওয়া عنصرটি দৃশ্যমান ত্রুটি নয় যখন আমি আপনার পরামর্শটি চেষ্টা করেছি
রঞ্জন ভম্বরো

8

এইভাবে আমি আমার নির্বাচনটি করেছিলাম।

function switchType(typeName) {
     $('.dropdown').element(By.cssContainingText('option', typeName)).click();
};

5

আমি এটি কীভাবে করেছি তা এখানে:

$('select').click();
$('select option=["' + optionInputFromFunction + '"]').click();
// This looks useless but it slows down the click event
// long enough to register a change in Angular.
browser.actions().mouseDown().mouseUp().perform();

মুলতুবি প্রক্রিয়া শেষ করার জন্য কৌণিক অপেক্ষা করার জন্য, প্রটেক্টরের waitForAngular()পদ্ধতিটি ব্যবহার করুন ।
আভি চেরি

5

এটি চেষ্টা করুন, এটি আমার জন্য কাজ করছে:

element(by.model('formModel.client'))
    .all(by.tagName('option'))
    .get(120)
    .click();

4

আপনি এটি আশা করতে পারেন এটি কার্যকর হবে

element.all(by.id('locregion')).then(function(selectItem) {
  expect(selectItem[0].getText()).toEqual('Ranjans Mobile Testing')
  selectItem[0].click(); //will click on first item
  selectItem[3].click(); //will click on fourth item
});

4

একটি বিকল্প উপাদান সেট করার অন্য উপায়:

var select = element(by.model('organization.parent_id'));
select.$('[value="1"]').click();

var অর্ডারস্টেস্ট = উপাদান (by.model ('ctrl.supplier.orderTest')) অর্ডারস্টেস্ট। $ ('[মান = "1"]')। ক্লিক করুন (); ত্রুটি পাচ্ছি (সিএসএস নির্বাচক, [মান = "3"])
অনুজ কেসি

3

এখানে অনন্য আইডিসহ আইটেমগুলি (বিকল্পগুলি) নির্বাচন করতে:

<select
    ng-model="foo" 
    ng-options="bar as bar.title for bar in bars track by bar.id">
</select>

আমি এটি ব্যবহার করছি:

element(by.css('[value="' + neededBarId+ '"]')).click();

3

আমরা একটি লাইব্রেরি লিখেছি যাতে বিকল্প নির্বাচন করার জন্য 3 টি উপায় রয়েছে:

selectOption(option: ElementFinder |Locator | string, timeout?: number): Promise<void>

selectOptionByIndex(select: ElementFinder | Locator | string, index: number, timeout?: number): Promise<void>

selectOptionByText(select: ElementFinder | Locator | string, text: string, timeout?: number): Promise<void>

এই ক্রিয়াকলাপগুলির অতিরিক্ত বৈশিষ্ট্য হ'ল তারা কোনও পদক্ষেপের আগে উপাদানটি প্রদর্শিত হওয়ার জন্য অপেক্ষা করে select

আপনি এটি এনএমপি @ হিটজার্নক্লাউড / প্রটেক্টর-টেস্ট-সহায়ক সাহায্যে খুঁজে পেতে পারেন । টাইপস্ক্রিপ্টের জন্য টাইপগুলি পাশাপাশি সরবরাহ করা হয়।


2

সম্ভবত সুপার মার্জিত না, তবে দক্ষ:

function selectOption(modelSelector, index) {
    for (var i=0; i<index; i++){
        element(by.model(modelSelector)).sendKeys("\uE015");
    }
}

এটি কেবল আপনার পছন্দের নির্বাচনের জন্য কীটি প্রেরণ করে, আমাদের ক্ষেত্রে আমরা মডেলসিলেক্টর ব্যবহার করছি তবে অবশ্যই আপনি অন্য কোনও নির্বাচক ব্যবহার করতে পারেন।

তারপরে আমার পৃষ্ঠা অবজেক্টের মডেলটিতে:

selectMyOption: function (optionNum) {
       selectOption('myOption', optionNum)
}

এবং পরীক্ষা থেকে:

myPage.selectMyOption(1);

2

সমস্যাটি হ'ল নিয়মিত কৌণিক নির্বাচন বাক্সগুলিতে কাজ করা সমাধানগুলি কৌণিক পদার্থের এমডি-সিলেক্ট এবং প্রোটেক্টর ব্যবহার করে এমডি-বিকল্পের সাথে কাজ করে না। এই একজন অন্য একজন পোস্ট করেছেন, তবে এটি আমার পক্ষে কাজ করেছিল এবং আমি এখনও তার পোস্টে মন্তব্য করতে পারিনি (কেবল ২৩ টি রেপ পয়েন্ট)। এছাড়াও, আমি এটি ব্রাউজার.স্লিপ এর পরিবর্তে কিছুটা সাফ করেছি, আমি ব্রাউজারটি ব্যবহার করেছি waউইটফোরআঙ্গুলার ();

element.all(by.css('md-select')).each(function (eachElement, index) {
    eachElement.click();                    // select the <select>
    browser.waitForAngular();              // wait for the renderings to take effect
    element(by.css('md-option')).click();   // select the first md-option
    browser.waitForAngular();              // wait for the renderings to take effect
});

আমি কেবল এটি ব্যবহার করেছি:element(by.model('selectModel')).click(); element(by.css('md-option[value="searchOptionValue"]')).click();
লুয়ান এনগুইন

এখানে আরেকটি পদ্ধতি রয়েছে: mdSelectElement.getAttribute('aria-owns').then( function(val) { let selectMenuContainer = element(by.id(val)); selectMenuContainer.element(by.css('md-option[value="foo"]')).click(); } );
gbruins

1

ফায়ারফক্সে অপশন নির্বাচন করার ক্ষেত্রে একটি সমস্যা রয়েছে যে আমি এখানে স্পষ্ট করে উল্লেখ করতে চাই দ্রুগানসের হ্যাক ফিক্স, আশা করি এটি কারও কোনও সমস্যা বাঁচাতে পারে: https://github.com/angular/protractor/issues/480

এমনকি যদি আপনার পরীক্ষাগুলি স্থানীয়ভাবে ফায়ারফক্সের সাথে উত্তীর্ণ হয় তবে আপনি দেখতে পাবেন যে সেগুলি সার্কেলসিআই বা ট্র্যাভিসিসিআই বা সিআই এবং স্থাপনার জন্য আপনি যা ব্যবহার করছেন তা ব্যর্থ হচ্ছে। শুরু থেকেই এই সমস্যা সম্পর্কে সচেতন হওয়া আমার অনেক সময় বাঁচাতে পারত :)


1

বিকল্প বিকল্প সেট করতে সহায়তাকারী:

selectDropDownByText:function(optionValue) {
            element(by.cssContainingText('option', optionValue)).click(); //optionValue: dropDownOption
        }

1

নীচে যদি দেওয়া ড্রপডাউন হয়-

            <select ng-model="operator">
            <option value="name">Addition</option>
            <option value="age">Division</option>
            </select>

তারপরে প্রটেক্টরজেস কোডটি হতে পারে-

        var operators=element(by.model('operator'));
    		operators.$('[value=Addition]').click();

উত্স- https://github.com/angular/protractor/issues/600


1

সূচক অনুসারে বিকল্পটি নির্বাচন করুন:

var selectDropdownElement= element(by.id('select-dropdown'));
selectDropdownElement.all(by.tagName('option'))
      .then(function (options) {
          options[0].click();
      });

1

আমি পলএল দ্বারা লিখিত সমাধানটি কিছুটা উন্নত করেছি। সবার আগে আমি কোডটি শেষ প্রটেক্টর এপিআই এর সাথে সামঞ্জস্যপূর্ণ হতে স্থির করেছিলাম। এবং তারপরে আমি ব্রাউজারের উদাহরণ হিসাবে কোনও প্রোটেক্টর কনফিগারেশন ফাইলের 'অনপ্রেপার' বিভাগে ফাংশনটি ঘোষণা করি , যাতে এটি কোনও e2e ফর্ম হিসাবে উল্লেখ করা যায়।

  onPrepare: function() {
    browser._selectDropdownbyNum = function (element, optionNum) {
      /* A helper function to select in a dropdown control an option
      * with specified number.
      */
      return element.all(by.tagName('option')).then(
        function(options) {
          options[optionNum].click();
        });
    };
  },

1

আমি কীভাবে কোনও মডেল ড্রপডাউনতে একটি বিকল্প নির্বাচন করতে পারি তার উত্তরের জন্য নেট ট্রলিং করছি এবং আমি এই সংমিশ্রণটি ব্যবহার করেছি যা আমাকে কৌণিক উপাদান দিয়ে সাহায্য করেছে।

element(by.model("ModelName")).click().element(By.xpath('xpathlocation')).click();

এটি প্রদর্শিত হয় যে কোডটি সমস্ত এক লাইনে নিক্ষেপ করার সময় এটি ড্রপডাউনটিতে উপাদানটি খুঁজে পেতে পারে।

এই সমাধানের জন্য প্রচুর সময় নিয়েছি আমি আশা করি যে এটি কাউকে সাহায্য করবে।


0

আমরা Angularjs উপাদান ব্যবহার করে সেখানে মার্জিত সমাধানটি ব্যবহার করতে চেয়েছিলাম কিন্তু এটি কার্যকর হয়নি কারণ এমড-সিলেক্ট না হওয়া অবধি ডমটিতে কোনও বিকল্প / এমডি-বিকল্প ট্যাগ নেই। সুতরাং "মার্জিত" উপায়টি আমাদের পক্ষে কার্যকর হয়নি (কৌণিক উপাদানের নোট দিন!) পরিবর্তে আমরা এটির জন্য যা করেছি তা এখানে রয়েছে, জানেন না এটির সবচেয়ে ভাল উপায় তবে এটি এখন নির্ধারিতভাবে কাজ করছে

element.all(by.css('md-select')).each(function (eachElement, index) {
    eachElement.click();                    // select the <select>
    browser.driver.sleep(500);              // wait for the renderings to take effect
    element(by.css('md-option')).click();   // select the first md-option
    browser.driver.sleep(500);              // wait for the renderings to take effect
});

আমাদের 4 টি বাছাই করা দরকার এবং নির্বাচনটি খোলা থাকাকালীন, পরবর্তী নির্বাচন বাছাই করার পথে একটি ওভারলে রয়েছে। যে পদার্থের প্রভাব এখনও কার্যকর হচ্ছে তা নিয়ে আমরা যাতে সমস্যায় পড়ি না তা নিশ্চিত করার জন্য আমাদের 500 মিমি অপেক্ষা করতে হবে কেন তা স্থায়ী।


0

একটি বিকল্প উপাদান সেট করার অন্য উপায়:

var setOption = function(optionToSelect) {

    var select = element(by.id('locregion'));
    select.click();
    select.all(by.tagName('option')).filter(function(elem, index) {
        return elem.getText().then(function(text) {
            return text === optionToSelect;
        });
    }).then(function(filteredElements){
        filteredElements[0].click();
    });
};

// using the function
setOption('BeaverBox Testing');

0
----------
element.all(by.id('locregion')).then(function(Item)
{
 // Item[x] = > // x is [0,1,2,3]element you want to click
  Item[0].click(); //first item

  Item[3].click();     // fourth item
  expect(Item[0].getText()).toEqual('Ranjans Mobile Testing')


});


0

বিকল্প মান বা সূচক উভয় দ্বারা এটি কীভাবে করা যায় তা এখানে । এই উদাহরণটি খানিকটা অপরিশোধিত, তবে এটি যা দেখায় তা কীভাবে করা যায় তা দেখায়:

এইচটিএমএল:

<mat-form-field id="your-id">
    <mat-select>
        <mat-option [value]="1">1</mat-option>
        <mat-option [value]="2">2</mat-option>
    </mat-select>
</mat-form-field>

TS:

function selectOptionByOptionValue(selectFormFieldElementId, valueToFind) {

  const formField = element(by.id(selectFormFieldElementId));
  formField.click().then(() => {

    formField.element(by.tagName('mat-select'))
      .getAttribute('aria-owns').then((optionIdsString: string) => {
        const optionIds = optionIdsString.split(' ');    

        for (let optionId of optionIds) {
          const option = element(by.id(optionId));
          option.getText().then((text) => {
            if (text === valueToFind) {
              option.click();
            }
          });
        }
      });
  });
}

function selectOptionByOptionIndex(selectFormFieldElementId, index) {

  const formField = element(by.id(selectFormFieldElementId));
  formField.click().then(() => {

    formField.element(by.tagName('mat-select'))
      .getAttribute('aria-owns').then((optionIdsString: string) => {
        const optionIds = optionIdsString.split(' ');

        const optionId = optionIds[index];
        const option = element(by.id(optionId));
        option.click();
      });
  });
}

selectOptionByOptionValue('your-id', '1'); //selects first option
selectOptionByOptionIndex('your-id', 1); //selects second option

0
static selectDropdownValue(dropDownLocator,dropDownListLocator,dropDownValue){
    let ListVal ='';
    WebLibraryUtils.getElement('xpath',dropDownLocator).click()
      WebLibraryUtils.getElements('xpath',dropDownListLocator).then(function(selectItem){
        if(selectItem.length>0)
        {
            for( let i =0;i<=selectItem.length;i++)
               {
                   if(selectItem[i]==dropDownValue)
                   {
                       console.log(selectItem[i])
                       selectItem[i].click();
                   }
               }            
        }

    })

}

0

আমরা এর জন্য একটি কাস্টম ড্রপডাউন ক্লাস তৈরি করতে পারি এবং একটি পদ্ধতি যুক্ত করতে পারি:

async selectSingleValue(value: string) {
        await this.element.element(by.xpath('.//option[normalize-space(.)=\'' + value + '\']')).click();
    }

এছাড়াও, বর্তমানে কোন মানটি নির্বাচন করা হয়েছে তা যাচাই করতে আমাদের কাছে থাকতে পারে:

async getSelectedValues() {
        return await this.element.$('option:checked').getText();
    }

0

নীচের উদাহরণটি সবচেয়ে সহজ উপায়। আমি প্রোটেক্টর সংস্করণে পরীক্ষা এবং পাস করেছি5.4.2

//Drop down selection  using option's visibility text 

 element(by.model('currency')).element(by.css("[value='Dollar']")).click();
 Or use this, it   $ isshort form for  .By.css
  element(by.model('currency')).$('[value="Dollar"]').click();

//To select using index

var select = element(by.id('userSelect'));
select.$('[value="1"]').click(); // To select using the index .$ means a shortcut to .By.css

সম্পূর্ণ কোড

describe('Protractor Demo App', function() {

  it('should have a title', function() {

     browser.driver.get('http://www.way2automation.com/angularjs-protractor/banking/#/');
    expect(browser.getTitle()).toEqual('Protractor practice website - Banking App');
    element(by.buttonText('Bank Manager Login')).click();
    element(by.buttonText('Open Account')).click();

    //Drop down selection  using option's visibility text 
  element(by.model('currency')).element(by.css("[value='Dollar']")).click();

    //This is a short form. $ in short form for  .By.css
    // element(by.model('currency')).$('[value="Dollar"]').click();

    //To select using index
    var select = element(by.id('userSelect'));
    select.$('[value="1"]').click(); // To select using the index .$ means a shortcut to .By.css
    element(by.buttonText("Process")).click();
    browser.sleep(7500);// wait in miliseconds
    browser.switchTo().alert().accept();

  });
});

0

এটি একটি সাধারণ একটি লাইনের উত্তর যাতে কৌণিকের একটি বিশেষ লোকেটার রয়েছে যা তালিকা থেকে নির্বাচন করতে এবং সূচকে সহায়তা করতে পারে।

element.all(by.options('o.id as o.name for o in organizations')).get(Index).click()

এই কোডটি কীভাবে এবং কেন এই সমস্যার সমাধান করে তার ব্যাখ্যা সহ প্রশ্নটি সমাধান করতে পারে যদিও আপনার পোস্টের গুণমান উন্নত করতে সত্যই সহায়তা করবে এবং সম্ভবত আরও বেশি ভোটের ফলাফল হবে। মনে রাখবেন যে আপনি ভবিষ্যতে পাঠকদের জন্য প্রশ্নের উত্তর দিচ্ছেন, কেবল এখনই জিজ্ঞাসা করা ব্যক্তি নয়। দয়া করে সম্পাদনা ব্যাখ্যা যোগ করতে পারেন এবং সীমাবদ্ধতা এবং অনুমানের কি প্রয়োগ একটি ইঙ্গিত দিতে আপনার উত্তর। পর্যালোচনা থেকে
ডাবল-বীপ

-1

সিএসএস সম্পত্তি দ্বারা বিকল্প নির্বাচন করুন

element(by.model("organization.parent_id")).element(by.css("[value='1']")).click();

অথবা

element(by.css("#locregion")).element(by.css("[value='1']")).click();

যেখানে লোকেশন (আইডি), সংগঠন.পরিচয়_আইডি (মডেলের নাম) নির্বাচিত উপাদানগুলির বৈশিষ্ট্য।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.