পাইথন এবং সেলেনিয়াম ব্যবহার করে এন্টার / রিটার্ন কী টাইপ করুন?


260

আমি সেলেনিয়ামে টাইপ এবং এন্টার বা কীটি ফেরত দেওয়ার জন্য একটি দ্রুত উপায় খুঁজছি। দুর্ভাগ্যক্রমে আমি যে ফর্মটি পরীক্ষা করার চেষ্টা করছি তার (নিজস্ব কোড নয় যাতে আমি সংশোধন করতে পারি না) জমা দেওয়ার বোতামটি নেই। নিজে এটির সাথে কাজ করার সময়, আমি কেবল টাইপ করি ENTERবা RETURNtypeক্লিক করার মতো কোনও বোতাম নেই বলে সেলেনিয়াম কমান্ডটি দিয়ে কীভাবে তা করব তা আমার জানতে হবে ।



ধন্যবাদ, আমার যা প্রয়োজন তা হ'ল!
ক্রিকশাগ

@ ক্রিকক্সাউগ: আপনি কী ব্যবহার করছেন? সেলেনিয়াম আরসি বা ওয়েবড্রাইভার (সেলেনিয়াম 2)? ভাষার কী হবে? জাভা? সি শার্প? অথবা কি?
রিপন আল ওয়াসিম

@ রিপনআলওয়াসিম, ২০০৯ সালে (যখন প্রশ্ন জিজ্ঞাসা করা হয়েছিল) কোনও ওয়েবড্রাইভার ছিল না। এছাড়াও উভয়ের জবাব কিছুক্ষণের জন্য এখানে ছিল ...
অ্যালেক্স ওকরুশকো

@ অ্যালেক্স ওক্রুশকো: হ্যাঁ, আপনি ঠিক বলেছেন
রিপন আল ওয়াসিম

উত্তর:


296
import org.openqa.selenium.Keys

WebElement.sendKeys(Keys.RETURN);

importবিবৃতি জাভা জন্য, অন্যান্য ভাষার জন্য এটা হয়তো ভিন্ন, উদাহরণস্বরূপ পাইথন জন্য:from selenium.webdriver.common.keys import Keys


25
আমি বিশ্বাস করি যে এটি স্থানান্তরিত হয়েছে। from selenium.webdriver.common.keys import Keys( স্ট্যাকওভারফ্লো.com / জিজ্ঞাসা / ৫৫০৪৯৯৯/২ )
জেমস ব্রডহেড

@ এইচ এম জেমস ব্রডহেড: আমি এটি পরীক্ষা করে দেখেছি, আসল জেভিএ (২.১17.০) এর কী কী ক্লাসটি এখনও রয়েছেorg.openqa.selenium.Keys
রাল্ফ

3
আমি জানি যে রিটার্ন প্রবেশের চেয়ে পৃথক, তবে কী কী? কীভাবে আলাদা? (আমি মনে করি কী কী.আরআরটিনই এটিকে আরও স্পষ্ট করে তুলবে যে এটি কাজ করা বট হয়?)
NoBrainer

1
@ নোব্রাইনার: আমদানি করা ফাইলটি দ্রুত দেখুন আপনার প্রশ্নের উত্তর দেবে: RETURN = '\ue006' ENTER = '\ue007' । কিন্তু কেন? কিছু অবশেষ বা ওএস পার্থক্য।
ওমিক্রন

2
@ নোব্রাইনার: এন্টার এবং রিটার্নের বিভিন্ন কী রয়েছে, এই উইকিপিডিয়া নিবন্ধটির চিত্রটি দেখুন: en.wikedia.org/wiki/Enter_key
রাল্ফ

192

জাভা

driver.findElement(By.id("Value")).sendKeys(Keys.RETURN);

অথবা,

driver.findElement(By.id("Value")).sendKeys(Keys.ENTER);

পাইথন

from selenium.webdriver.common.keys import Keys
driver.find_element_by_name("Value").send_keys(Keys.RETURN)

অথবা,

driver.find_element_by_name("Value").send_keys(Keys.ENTER)

অথবা,

element = driver.find_element_by_id("Value")
element.send_keys("keysToSend")
element.submit()

চুনি

element = @driver.find_element(:name, "value")
element.send_keys "keysToSend"
element.submit

অথবা,

element = @driver.find_element(:name, "value")
element.send_keys "keysToSend"
element.send_keys:return

অথবা,

@driver.action.send_keys(:enter).perform
@driver.action.send_keys(:return).perform

সি শার্প

driver.FindElement(By.Id("Value")).SendKeys(Keys.Return);

অথবা,

driver.FindElement(By.Id("Value")).SendKeys(Keys.Enter);

1
পাইথনের জন্য, আমি খুঁজে পেলাম যে ইনপুট স্ট্রিংয়ের সাথে "\ n" যুক্ত করা সবচেয়ে সহজ সরল পথ। এটি একটি অনুসন্ধানের ক্ষেত্রে কাজ করেছিল।
ইয়াকভকে

26

এখন যেহেতু সেলেনিয়াম 2 প্রকাশিত হয়েছে, আপনি কী ক্লাসের send_keysপদ্ধতিতে এটি করতে পারেন সেহেতু একটি এন্টার কী প্রেরণ করা কিছুটা সহজ selenium.webdriver.remote.webelement.WebElement((উদাহরণস্বরূপ কোডটি পাইথনে রয়েছে তবে জাভাতে একই পদ্ধতি বিদ্যমান):

>>> from selenium import webdriver
>>> wd = webdriver.Firefox()
>>> wd.get("http://localhost/example/page")
>>> textbox = wd.find_element_by_css_selector("input")
>>> textbox.send_keys("Hello World\n")

24

আপনি কোনটাকে ব্যবহার করতে পারেন Keys.ENTERবাKeys.RETURN । এখানে কিছু বিবরণ দেওয়া হল:

ব্যবহার:

  • জাভা :

    • ব্যবহার Keys.ENTER:

      import org.openqa.selenium.Keys;
      driver.findElement(By.id("element_id")).sendKeys(Keys.ENTER);
      
    • ব্যবহার Keys.RETURN

      import org.openqa.selenium.Keys;
      driver.findElement(By.id("element_id")).sendKeys(Keys.RETURN);
      
  • পাইথন:

    • ব্যবহার Keys.ENTER:

      from selenium.webdriver.common.keys import Keys
      driver.find_element_by_id("element_id").send_keys(Keys.ENTER)
      
    • ব্যবহার Keys.RETURN

      from selenium.webdriver.common.keys import Keys
      driver.find_element_by_id("element_id").send_keys(Keys.RETURN)
      

Keys.ENTERএবং Keys.RETURNউভয়ই org.openqa.selenium.Keysহ'ল, যা প্রসারিত java.lang.Enum<Keys>এবং প্রয়োগকারীjava.lang.CharSequence


এনুম কী

Enum কী pressable কী যে পাঠ্য নয়, সেগুলো উপস্থাপনা হয়। এগুলি ইউনিকোড পিইউএ ( প্রাইভেট ইউজ এরিয়া) এ সংরক্ষণ করা হয় ) কোড পয়েন্টস, 0xE000-0xF8FF এ সঞ্চিত রয়েছে।

মূল কোডগুলি:

keys codesতাদের জন্য বিশেষ নিম্নরূপ:

  • প্রত্যাবর্তন =u'\ue006'
  • প্রবেশ করুন =u'\ue007'

সব বাস্তবায়ন Enum Keys একইভাবে পরিচালিত হয়।

অত: পর এই হল কোন Functional বা Operationalপার্থক্য সঙ্গে পারেন কাজ করার সময় sendKeys(Keys.ENTER);বা WebElement.sendKeys(Keys.RETURN);মাধ্যমে সেলেনিয়াম


কী এবং রিটার্ন কী প্রবেশ করান

কম্পিউটার কীবোর্ডগুলিতে, Enter(বা Returnম্যাক ওএসএক্স অন) বেশিরভাগ ক্ষেত্রে একটি কমান্ড লাইন, উইন্ডো ফর্ম, বা ডায়লগ বাক্সকে এর ডিফল্ট ফাংশন পরিচালনা করে causes এটি সাধারণত একটি "এন্ট্রি" শেষ করতে এবং পছন্দসই প্রক্রিয়া শুরু করতে হয় এবং সাধারণত একটি ওকে বোতাম টিপে বিকল্প হয়।

Returnপ্রায়ই নামেও অভিহিত করা হয় Enterএবং তারা সাধারণত অভিন্ন কাজ কর্ম সম্পাদন; তবে কিছু নির্দিষ্ট অ্যাপ্লিকেশনগুলিতে (মূলত পৃষ্ঠার বিন্যাস) Returnবিশেষত ক্যারেজ রিটার্ন কী এর থেকে চালিত হয় যা থেকে উদ্ভূত হয়। বিপরীতে, Enterসাধারণত জেনেরিক পিসি কীবোর্ডগুলির সরল পাঠ্যে এর নামের সাথে লেবেলযুক্ত থাকে।


তথ্যসূত্র


12

এইচটিএমএল পরীক্ষা লেখার সময়, ENTER কীটি উপলব্ধ ${KEY_ENTER}

আপনি এটির সাথে এটি ব্যবহার করতে পারেন sendKeys, এখানে একটি উদাহরণ রয়েছে:

sendKeys | id=search | ${KEY_ENTER}

11

পাইথনে

ধাপ 1. from selenium.webdriver.common.keys import Keys

ধাপ ২. driver.find_element_by_name("").send_keys(Keys.ENTER)

দ্রষ্টব্য: আপনাকে লিখতে হবেKeys.ENTER


9

আপনি কেবল এটি করুন:

final private WebElement input = driver.findElement(By.id("myId"));
input.clear();
input.sendKeys(value); // the value we want to set to input
input.sendKeys(Keys.RETURN);

কৌতূহলের বাইরে আপনি কেন 3 লাইনের কোড লিখতে পছন্দ করেন যা আপনি একটি লাইনে লিখতে পারেন
শেখর স্বামী


6

যারা ভাবেন ওয়েবড্রাইভারজেএস ব্যবহার করছেন Keys.RETURNতাদের হিসাবে উল্লেখ করা হবে

webdriver.Key.RETURN

রেফারেন্স হিসাবে আরও একটি সম্পূর্ণ উদাহরণও সহায়ক হতে পারে:

var pressEnterToSend = function () {
    var deferred = webdriver.promise.defer();
    webdriver.findElement(webdriver.By.id('id-of-input-element')).then(function (element) {
        element.sendKeys(webdriver.Key.RETURN);
        deferred.resolve();
    });

    return deferred.promise;
};


6
search = browser.find_element_by_xpath("//*[@type='text']")
search.send_keys(u'\ue007')

ENTER = u '\ ue007'

সেলেনিয়াম ডকুমেন্টেশন 'বিশেষ কী' দেখুন


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

5

আমি শুধু নোট মত আমি আমার শসা পরীক্ষার জন্য এই প্রয়োজন এবং খুঁজে পাওয়া যায় নি যে যদি আপনি প্রবেশ / রিটার্ন কী টিপে সিমুলেট করতে চান, আপনি পাঠাতে হবে :returnমান এবং না:enter মান (দেখুন মান বর্ণনা এখানে )


এটি একটি জিডব্লিউটি ইনপুট পাঠ্য ক্ষেত্রেও সত্য।
জোগেসি

5

জাভা সহ সেলেনিয়াম আরসির জন্য:

selenium.keyPress("elementID", "\13");

জাভা সহ সেলেনিয়াম ওয়েবড্রাইভার (ওরফে সেলেনিয়াম 2) এর জন্য:

driver.findElement(By.id("elementID")).sendKeys(Keys.ENTER);

অথবা,

driver.findElement(By.id("elementID")).sendKeys(Keys.RETURN);

অ্যাকশন ক্লাস ব্যবহার করে ওয়েবড্রাইভারে এন্টার টিপবার অন্য উপায়:

Actions action = new Actions(driver); 
action.sendKeys(driver.findElement(By.id("elementID")), Keys.ENTER).build().perform();

3

যদি আপনি "সেলেনিয়াম ওয়েবড্রাইভার (জাভা) এর কীবোর্ড থেকে কী কী টিপতে চান" সন্ধান করে থাকেন তবে নীচের কোডটি অবশ্যই আপনাকে সহায়তা করবে।

//assign key board object
Keyboard keyboard=((HasInputDevices) driver).getKeyboard();
//enter a key
keyboard.pressKey(Keys.ENTER);

1
আপনি যে উত্তরটি সরবরাহ করেন সে সম্পর্কে আরও কিছু বিবরণ যুক্ত করে আরও উত্তর দিতে পারেন?
অ্যারিসোন

3

আপনি কল করতে পারেন submit() যে উপাদানটিতে আপনার পাঠ্য প্রবেশ করেছেন তাতে ।

বিকল্প হিসাবে, আপনি এই অজগর স্নিপেটে যেমন দেখানো হয়েছে তেমনভাবে প্রবেশের কীটি এটি প্রেরণ করতে পারেন:

from selenium.webdriver.common.keys import Keys
element.send_keys(Keys.ENTER) # element is the WebElement object corresponding to the input field on the page

2

উপাদানটি অনুসন্ধান করার জন্য এক্সপ্যাথ ব্যবহার করার চেষ্টা করুন এবং তারপরে, নীচের কোডটি কাজ করে:

driver.findElement(By.xpath(".//*[@id='txtFilterContentUnit']")).sendKeys(Keys.ENTER);

যদি উপাদানটির আইডি থাকে তবে এক্সপথের পরিবর্তে আইডি ব্যবহার করা ভাল
রিপন আল ওয়াসিম

2

কী টিপে নিম্নলিখিত পদ্ধতি রয়েছে - সি #:

Driver.FindElement(By.Id("Value")).SendKeys(Keys.Return);

অথবা

OpenQA.Selenium.Interactions.Actions action = new OpenQA.Selenium.Interactions.Actions(Driver);
action.SendKeys(OpenQA.Selenium.Keys.Escape);

অথবা

IWebElement body = GlobalDriver.FindElement(By.TagName("body"));
body.SendKeys(Keys.Escape);


2

আপনি যখন কোনও লোকেটার অনুসন্ধান করতে চান না, আপনি রোবট শ্রেণি ব্যবহার করতে পারেন: যেমন:

            Robot robot = new Robot();
            robot.keyPress(KeyEvent.VK_ENTER);
            robot.keyRelease(KeyEvent.VK_ENTER);

2

সেলেনিয়াম ব্যবহার করে কীগুলি প্রবেশ করতে প্রথমে আপনাকে নীচের পাঠাগারটি আমদানি করতে হবে:

"import org.openqa.selenium.Keys"

তারপরে আপনি কীটি প্রবেশ করতে চান সেখানে এই কোডটি যুক্ত করুন

"WebElement.sendKeys(Keys.RETURN);"

আপনি আপনার প্রয়োজনীয়তা অনুযায়ী তালিকা থেকে যে কোনও কী দিয়ে রিটার্ন প্রতিস্থাপন করতে পারেন


1

ওয়েবড্রাইভারের ক্ষেত্রেও অ্যাকশন ইন্টারফেস ব্যবহার করে অর্জন করা যেতে পারে -

WebElement username = driver.findElement(By.name("q"));
username.sendKeys(searchKey);
Actions action = new Actions(driver);
action.sendKeys(Keys.RETURN);
action.perform();



1

আমাকে একটি পাঠ্যের মাঝখানে প্রবেশ কী পাঠাতে হয়েছিল। সুতরাং আমি অর্জন করতে কী ফাংশন প্রেরণ নিম্নলিখিত পাঠ্য পাস1\n2\n3

1\N{U+E007}2\N{U+E007}3

1

এক্সপ্যাথ ব্যবহার করে সেলেনিয়াম ওয়েবড্রাইভারের জন্য (কীটি যদি দৃশ্যমান থাকে):

driver.findElement(By.xpath("xpath of text field")).sendKeys(Keys.ENTER);

বা,

driver.findElement(By.xpath("xpath of text field")).sendKeys(Keys.RETURN);

1

আপনি যদি এই নির্দিষ্ট পরিস্থিতিতে থাকেন:

ক) কী টিপতে হবে, তবে ক্লিক করতে একটি নির্দিষ্ট ওয়েব-এলিমেন্ট নেই

খ) আপনি সেলেনিয়াম 2 (ওয়েবড্রাইভার) ব্যবহার করছেন

তারপরে সমাধানটি হ'ল:

    Actions builder = new Actions(webDriverInstance);
    builder.sendKeys(Keys.RETURN).perform();

1

জাভা / javascript:

আপনি সম্ভবত এটি এইভাবে করতে পারেন, অ-নেটিভ :

public void triggerButtonOnEnterKeyInTextField(String textFieldId, String clickableButId)
{
  ((JavascriptExecutor) driver).executeScript("
  elementId = arguments[0];
  buttonId = arguments[1];
  document.getElementById(elementId)
    .addEventListener("keyup", function(event) {
      event.preventDefault();
      if (event.keyCode == 13) {
          document.getElementById(buttonId).click();
      }
    });", textFieldId, clickableButId);
}


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