সেলেনিয়াম 2 এ কীভাবে ড্রপ ডাউন বিকল্প নির্বাচন করবেন / পাবেন


96

আমি আমার সেলেনিয়াম 1 কোডটিকে সেলেনিয়াম 2 তে রূপান্তর করছি এবং একটি ড্রপ ডাউন মেনুতে কোনও লেবেল নির্বাচন করার বা ড্রপ ডাউনের নির্বাচিত মান পেতে কোনও সহজ উপায় খুঁজে পাচ্ছি না। আপনি কীভাবে সেলেনিয়াম 2 এ এটি করতে জানেন?

এখানে দুটি বক্তব্য যা সেলেনিয়াম 1 তে কাজ করে তবে 2 তে নয়:

browser.select("//path_to_drop_down", "Value1");
browser.getSelectedValue("//path_to_drop_down");

আপনি কি ফায়ারব্যাগ ব্যবহার করে এটি সনাক্ত করার চেষ্টা করেছেন? ফায়ারব্যাগ / এক্সপ্যাথারের সাহায্যে উত্পন্ন এক্সপথ ব্যবহার করা আরও সহজ করে তুলতে পারে।

4
প্রশ্নটি ড্রপ ডাউনকে সনাক্ত করা বা খুঁজে পাওয়ার বিষয়ে নয়। এটি যে ড্রপ ডাউন একটি লেবেল নির্বাচন সম্পর্কে। আমি ড্রপ ডাউনটি সনাক্ত করতে পারি তবে সেলেনিয়াম 2 এ কোন পদ্ধতিটি কল করতে হবে তা বেছে নেই (নির্বাচন করে) এবং getSelectedValue () বা getSelectedLabel () সেলেনিয়াম ২ তে কাজ করে না
ব্যবহারকারী 786045

উত্তর:


184

সেলেনিয়াম ডকুমেন্টেশনে ওয়েবড্রাইভার এবং সিলেক্ট ক্লাসের জাভডোক ব্যবহার করে ফর্ম পূরণ সম্পর্কে বিভাগটি একবার দেখুন ।

লেবেলের উপর ভিত্তি করে একটি বিকল্প নির্বাচন করতে:

Select select = new Select(driver.findElement(By.xpath("//path_to_drop_down")));
select.deselectAll();
select.selectByVisibleText("Value1");

প্রথম নির্বাচিত মান পেতে:

WebElement option = select.getFirstSelectedOption()

বাই.প্যাথ ("// পথ_ টু_ড্রোপ_ডাউন")। আমি এটিকে বাই.নামের মতো একটি লোকেটারের সাথে প্রতিস্থাপন করব।
ড্যানিয়েল

4
নির্বাচনটি একাধিক নির্বাচনকে সমর্থন না করে যদি অনির্বাচিত সমস্ত অপসারণের ধারণাটি নিক্ষেপ করবে
টম হার্টওয়েল

4
সি # তে, সিলেক্টমেন্ট ক্লাসটি ব্যবহার করুন, সুতরাং:SelectElement salesExecutiveDropDown = new SelectElement(webDriver.FindElement(By.Id("salesExecutiveId")));
জেরেমি

Fyi এই কোডটি আমি এই লাইনটি মন্তব্য না করা পর্যন্ত একটি ড্রপডাউন নির্বাচন করতে সক্ষম ছিল না: //select.deselectAll (); তারপরে এটি কাজ শুরু করে। আপনার মাইলেজ পরিবর্তিত হতে পারে.
gorbysbm

4
নোট যেটি deselectAllশুধুমাত্র মাল্টিলেসलेक्टের জন্য বৈধ: selenium.googlecode.com/svn/trunk/docs/api/java/org/openqa/…
ব্যবহারকারী1205577


4

রুবিতে ক্রমাগত ব্যবহারের জন্য, অনুসরণ করুন:

module Selenium
  module WebDriver
    class Element
      def select(value)
        self.find_elements(:tag_name => "option").find do |option|
          if option.text == value
            option.click
              return
           end
       end
    end
  end
end

এবং আপনি মান নির্বাচন করতে সক্ষম হবেন:

browser.find_element(:xpath, ".//xpath").select("Value")

3

ব্যবহার করার চেষ্টা করুন:

selenium.select("id=items","label=engineering")

বা

selenium.select("id=items","index=3")

0

উপরে জেন্ডারসন যা পোস্ট করেছেন তার অনুরূপ বিকল্পটি সহজেই সেলেনিয়াম ২ .GetAttribute পদ্ধতিটি ব্যবহার করতে পারেন এটি ব্যবহার করে, আপনি যে আইটেমটির সুনির্দিষ্ট মান বা লেবেল সন্ধান করছেন তা ধরে নিতে পারেন। এটি কোনও উপাদানের লেবেল, শৈলী, মান ইত্যাদি রয়েছে কিনা তা নির্ধারণ করতে ব্যবহার করা যেতে পারে এটি করার একটি সাধারণ উপায় হ'ল ড্রপ ডাউনের আইটেমগুলি লুপ করা যতক্ষণ না আপনি নিজের পছন্দ মতো সন্ধান করে এবং এটি নির্বাচন করে select সি # তে

int items = driver.FindElement(By.XPath("//path_to_drop_Down")).Count(); 
for(int i = 1; i <= items; i++)
{
    string value = driver.FindElement(By.XPath("//path_to_drop_Down/option["+i+"]")).GetAttribute("Value1");
    if(value.Conatains("Label_I_am_Looking_for"))
    {
        driver.FindElement(By.XPath("//path_to_drop_Down/option["+i+"]")).Click(); 
        //Clicked on the index of the that has your label / value
    }
}

0

আপনি এই মত করতে পারেন:

public void selectDropDownValue(String ValueToSelect) 
{

    webelement findDropDownValue=driver.findElements(By.id("id1"))    //this will find that dropdown 

    wait.until(ExpectedConditions.visibilityOf(findDropDownValue));    // wait till that dropdown appear

    super.highlightElement(findDropDownValue);   // highlight that dropdown     

    new Select(findDropDownValue).selectByValue(ValueToSelect);    //select that option which u had passed as argument
}

0

এই পদ্ধতিটি ড্রপ ডাউনের জন্য নির্বাচিত মানটি ফিরিয়ে দেবে,

public static String getSelected_visibleText(WebDriver driver, String elementType, String value)
  {
    WebElement element = Webelement_Finder.webElement_Finder(driver, elementType, value);
   Select Selector = new Select(element);
    Selector.getFirstSelectedOption();
    String textval=Selector.getFirstSelectedOption().getText();
    return textval;
  }

এদিকে

স্ট্রিং টেক্সটওয়াল = সিলেক্টর.জেটফর্স্টসিলেক্টড অপশন ();

এলিমেন্ট.জেটেক্সট ();

ড্রপ ডাউন সমস্ত উপাদান ফিরে আসবে।


-2

ড্রপ ডাউন থেকে মান নির্বাচন করার জন্য এটি কোড

সিলেকલોকেটারের জন্য মানটি ড্রপডাউন বাক্সের এক্সপথ বা নাম হবে এবং অপশনলোকের জন্য ড্রপডাউন বাক্স থেকে মান নির্বাচন করতে হবে।

public static boolean select(final String selectLocator,
        final String optionLocator) {
    try {
        element(selectLocator).clear();
        element(selectLocator).sendKeys(Keys.PAGE_UP);
        for (int k = 0; k <= new Select(element(selectLocator))
                .getOptions().size() - 1; k++) {
            combo1.add(element(selectLocator).getValue());
            element(selectLocator).sendKeys(Keys.ARROW_DOWN);
        }
        if (combo1.contains(optionLocator)) {
            element(selectLocator).clear();
            new Select(element(selectLocator)).selectByValue(optionLocator);
            combocheck = element(selectLocator).getValue();
            combo = "";

            return true;
        } else {
            element(selectLocator).clear();
            combo = "The Value " + optionLocator
                    + " Does Not Exist In The Combobox";
            return false;
        }
    } catch (Exception e) {
        e.printStackTrace();
        errorcontrol.add(e.getMessage());
        return false;
    }
}



private static RenderedWebElement element(final String locator) {
    try {

        return (RenderedWebElement) drivers.findElement(by(locator));
    } catch (Exception e) {
        errorcontrol.add(e.getMessage());
        return (RenderedWebElement) drivers.findElement(by(locator));
    }
}

ধন্যবাদ,

রেখা।


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