ক্যাপিবারাতে উপাদানটির সঠিক পাঠ্যের সাথে কীভাবে একটি উপাদান খুঁজে পাবেন find


102

আমার এইচটিএমএলে দুটি উপাদান রয়েছে

<a href="/berlin" >Berlin</a>
<a href="/berlin" >Berlin Germany </a>

আমি ক্যাপিবারা পদ্ধতি অনুসরণ করে উপাদানটি সন্ধান করার চেষ্টা করছি

find("a", :text => "berlin")

উপরে দুটি উপাদান ফিরে আসবে কারণ উভয়টিতে বার্লিনে পাঠ্য রয়েছে।

ক্যাপিবারাতে সঠিক পাঠ্য মেলানোর কোনও উপায় আছে?


ক্যাপিবারা নাকি নোকোগিরি? কেন এই উভয় ট্যাগ করা হয়?
পিগার্ডিরিও

উত্তর:



139

:textকীটির মানটির জন্য স্ট্রিংয়ের পরিবর্তে একটি রেজিপ্যাক্স ব্যবহার করুন :

find("a", :text => /\ABerlin\z/)

Method: Capybara::Node::Finders#all ডকুমেন্টেশনের 'অপশন হ্যাশ' বিভাগটি দেখুন ।

PS: পাঠ্য মিলগুলি সংবেদনশীল। আপনার উদাহরণ কোডটি আসলে একটি ত্রুটি উত্থাপন করে:

find("a", :text => "berlin")
# => Capybara::ElementNotFound:
#    Unable to find css "a" with text "berlin"

13
এটি দুর্দান্ত উত্তর যে এটি ভয়ানক। : কান্নাকাটি:
BM5k

বার্লিনের মধ্যে কেন আমাদের \ এ এবং \ z আছে?
করণ ভার্মা

1
কীভাবে আমি
রেজিজেলে

এটি লেখার দ্বারা পরিচালিত হতে পারেclick_link(link_text, :text => link_text)
মনে রাখবেন আপনি কেন

52

আপনি রত্নটির কোন সংস্করণ ব্যবহার করছেন তার উপর নির্ভরশীল

find('a', text: 'Berlin', exact: true)

অবচয় করা হতে পারে। কোন ক্ষেত্রে আপনি ব্যবহার করতে হবে

find('a', text: 'Berlin', match: :prefer_exact)


4

আপনি এটিও করতে পারেন:

find('a', text: 'Berlin', exact_text: true)

এটি CSS এর সন্ধান করবে।

এবং কেবল exact: trueপরিবর্তে ব্যবহার করা exact_textআপনাকে একটি চিত্র প্রদর্শন করবে যে exactবিকল্পটি কেবল এক্সপ্যাথের জন্য বৈধ।


2
বা আরও বেশি, আপনি ব্যবহার করতে পারেনfind("a", exact_text: "berlin")
কুকুনিন

0

ক্যাপিবারাতে ক্লিক_লিঙ্ক ব্যবহারের জন্য আপনাকে এটি পদ্ধতিতে আরও একটি সম্পত্তি যুক্ত করতে হবে।

click_link(link_name, :text => link_name)

এখানে লিঙ্ক_নামটি কোনও লিঙ্কের পাঠ্য মান। ব্যবহার করে : পাঠ্য কীওয়ার্ডটি আমরা উল্লেখ করছি যে আমরা আমাদের লিঙ্কের সাথে টেক্সট মানটি যুক্ত করতে চাই যা আমাদের প্রয়োজনীয়তার সাথে যথাযথ মেলানো।

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