আপনি উপাদানগুলির নাম কীভাবে রাখবেন
উপাদান সনাক্ত করতে CSS আইডি বা শ্রেণি ব্যবহার করুন। সিএসএস আইডি ব্যবহার করে পছন্দ করুন যখন বস্তুটি অনন্য। আপনি যে কাঠামোটি ব্যবহার করছেন তা বিবেচনা করুন, উদাহরণস্বরূপ, রুবি অন রেলগুলির সাথে name
অ্যাট্রিবিউটটি স্বয়ংক্রিয়ভাবে বরাদ্দ করা হয়েছে এবং সিএসএস আইডি বা ক্লাস ব্যবহার করার চেয়ে (স্বজ্ঞাতই) ভাল হতে পারে
আপনি উপাদানগুলি কীভাবে চিহ্নিত করবেন।
table/tr/td/td
যেমন td[id="main_vehicle"
বা হিসাবে ফর্মের পক্ষে অবস্থানগত সনাক্তকারীদের এড়িয়ে চলুন td[class='alternates']
। উপযুক্ত হলে ডেটা অ্যাট্রিবিউট ব্যবহার করা বিবেচনা করুন। আরও ভাল করে যেমন এড়ানোর বিন্যাস ট্যাগ চেষ্টা <td>
পুরাপুরি যাতে আপনি উপরে হয় একটি স্প্যান এবং ব্যবহারের যে, যেমন যোগ করতে পারিনি জন্য <span id="main_vehicle">
বা এই ধরনের যেমন একটি ওয়াইল্ড কার্ড নির্বাচক *[id="main_vehicle"]
যেখানে *
এখন একটি div, বিঘত, TD, ইত্যাদি হতে পারে
পরীক্ষা নির্দিষ্ট ডেটা অ্যাট্রিবিউটগুলি ব্যবহার করা যা কেবলমাত্র QA এবং পরীক্ষার জন্য ব্যবহৃত হয়।
উপাদানগুলির জন্য অপ্রয়োজনীয় যোগ্যতা এড়িয়ে চলুন। আপনি নিম্নলিখিত ব্যবহার করে নিজেকে খুঁজে পেতে পারেন:
body.main div#vehicles > form#vehicle input#primary_vehicle_name
তবে এটির জন্য ইনপুট ক্ষেত্রটি গাড়ির যথাযথ আইডি সহ কোনও ফর্মের মধ্যে থাকতে হবে এবং একটি বডি সহ একটি পৃষ্ঠা রয়েছে যা প্রধান শ্রেণীর এবং একটি ডিভি ডি যে যানবাহনের আইডি সহ একটি আইডি সহ একটি ফর্মের তাত্ক্ষণিক শিশু রয়েছে with গাড়ির। যে কোনও কাঠামোর যে কোনও পরিবর্তন এবং পরীক্ষা বিরতি। এই ক্ষেত্রে আপনি এটি পেতে পারেন
input#primary_vehicle_name
উপাদানটি অনন্যভাবে সনাক্ত করতে যথেষ্ট is
দৃশ্যমান পাঠ্যের উল্লেখ করে এমন পরীক্ষাগুলি এড়িয়ে চলুন। ব্যবহারকারীর কাছে প্রদর্শিত পৃষ্ঠাগুলি সাইটটি রক্ষণাবেক্ষণ এবং আপডেট হওয়ার সাথে সাথে সময়ের সাথে সাথে সাধারণত পরিবর্তিত হয়, সুতরাং সিএসএস আইডি এবং সিএসএস শ্রেণি বা ডেটা অ্যাট্রিবিউট হিসাবে সনাক্তকারী ব্যবহার করুন। যেমন উপাদানসমূহ form
, input
এবং select
ফর্ম ব্যবহার এছাড়াও চিহ্নিতকরণের উপাদানের ভাল অংশ, সাধারণত আইডি বা বর্গ, যেমন সঙ্গে একযোগে হয় li.vehicle
বা input#first-vehicle
এছাড়াও আপনি আপনার নিজস্ব শনাক্তকারী, যেমন যুক্ত করতে পারেন <div data-vehicle='dodge'>
। এইভাবে আপনি উপাদান আইডি বা ক্লাস ব্যবহার করা এড়াতে পারেন, সম্ভবত বিকাশকারী এবং ডিজাইনারদের দ্বারা এটি পরিবর্তন করা যেতে পারে। আমি আসলে সময়ের সাথে খুঁজে পেয়েছি যে কেবলমাত্র বিকাশকারী এবং ডিজাইনারদের সাথে কাজ করা এবং নাম এবং স্কোপগুলির সাথে একমত হওয়া ভাল। এটা কঠিন.
কিভাবে স্থির ডেটা বজায় রাখা হয়।
প্রকৃত উপাদানগুলি সনাক্তকরণের অনুরূপ, অন-লাইন হার্ড কোডড নির্বাচককে পৃষ্ঠাগুলি অবজেক্টের পক্ষে মান সনাক্তকরণ এড়ানোর চেষ্টা করুন - টেক্সটের ছোট ছোট টুকরা যা ভেরিয়েবল বা পদ্ধতিতে ধারণ করা হয় এবং এইভাবে পুনরায় ব্যবহার করা যেতে পারে এবং কেন্দ্রীয়ভাবেও বজায় রাখা যেতে পারে। হার্ড-কোডড মানগুলির জন্য এই প্যাটার্নটি অনুসরণ করে জাভাস্ক্রিপ্ট ভেরিয়েবলের উদাহরণ:
storedVars["eqv_auto_year"] = "2015";
storedVars["eqv_auto_make_1"] = "ALFA ROMEO";
storedVars["eqv_auto_make_2"] = "HONDA";`
পৃষ্ঠাতে আরো এ বস্তু সেলেনিয়াম উইকি এবং সেলেনিয়াম ডক্স
বিকাশকারীদের সাথে যোগাযোগ।
'বিকাশকারীগণের পরিবর্তে QA অটোমেশনটি ভাঙ্গা' শর্তে প্রযুক্তিগত পন্থা নির্বিশেষে এটি একটি কর্মপ্রবাহ সমস্যা। আপনার এটি নিশ্চিত করতে হবে: প্রত্যেকেই একই দল; বিকাশকারী একই সংহত পরীক্ষা চালান; মান উভয় গ্রুপের দ্বারা সম্মত এবং অনুসরণ করা হয়; সম্পন্ন সংজ্ঞা চলমান এবং সম্ভবত ইউআই পরীক্ষা আপডেট করা অন্তর্ভুক্ত; বিকাশকারী এবং পরীক্ষার জোড় পরীক্ষার পরিকল্পনা এবং উভয়ই টিকিট গ্রুমিংয়ে উপস্থিত হন (যদি চপল করে থাকেন) এবং সাজসজ্জার অংশ হিসাবে ইউআই পরীক্ষার বিষয়ে কথা বলেন। আপনার নিশ্চিত করা উচিত যে আপনি নামকরণের জন্য যে কোনও পদ্ধতির এবং কৌশল ব্যবহার করেন তা অ্যাপ্লিকেশন বিকাশকারীদের সাথে সমন্বিত। আপনি যদি একই পৃষ্ঠাতে না পান তবে আপনি অবজেক্টের নামকরণের বিষয়ে সংঘর্ষের পছন্দ করতে পারেন। আমি সম্প্রতি একটি রুবি প্রকল্পের জন্য তৈরি পৃষ্ঠা পৃষ্ঠা পদ্ধতির কয়েকটি উদাহরণ:
def css_email_opt_in_true
'auto_policy[email_opt_in][value=1]'
end
def css_phone_opt_in
'*[name="auto_policy[phone_opt_in]"]'
end
def css_phone_opt_in_true
'input[name=phone_opt_in][value=true]'
end
def css_credit_rating
'auto_policy[credit_rating]'
end
এখানে জাভাস্ক্রিপ্ট ভেরিয়েবল হিসাবে একই পৃষ্ঠা অবজেক্টস:
storedVars["css_email_opt_in"] = "css=*[name='auto_policy[email_opt_in]']";
storedVars["css_phone_opt_in"]="css=*[name='auto_policy[phone_opt_in]']";
storedVars["css_phone_opt_in_true"]="css=input[name='phone_opt_in'][value=true]";
storedVars["css_credit_rating"]="css=select[name='auto_policy[credit_rating]']";