/ / किसी चयनित सूची में किसी पाए गए तत्व पर "सच्ची स्थिति" प्राप्त करने में असमर्थ और इसे चुनें - रूबी, आरएसपीसी, वॉटर

किसी चयनित सूची में किसी पाए गए तत्व पर "सच्ची स्थिति" प्राप्त करने में असमर्थ और इसे चुनें - रूबी, आरएसपीसी, वॉटर

मैं रुपयेपीआर 6 के साथ वॉटर 6 का उपयोग कर रहा हूं और मुझे एक चयन सूची तक पहुंचने में परेशानी हो रही है और विकल्पों में से एक का चयन करना है।

यूआरएल है: https://www.fundingcircle.com/businesses/apply?video=true

प्रश्न में कोड जो असफल हो रहा है:

browser.select_list(name: "loan_product").select("Working capital")

HTML:

<select name="loan_product" required="" ng-model="prequal.borrower.loan_product" ng-options="product as product.label for product in prequal.loanProducts" styled-select="" placeholder="Please select..." fc-input="" class="ng-scope ng-pristine ng-invalid ng-invalid-required fc-touched">
<option value="?" selected="selected" label=""></option><option value="0" label="Working capital">Working capital</option><option value="1" label="Expansion/growth">Expansion/growth</option><option value="2" label="Refinancing a loan">Refinancing a loan</option><option value="3" label="Asset finance">Asset finance</option><option value="4" label="Tax payment">Tax payment</option><option value="5" label="Commercial mortgage">Commercial mortgage</option><option value="6" label="Other">Other</option></select>

कोड को बदलने की कोशिश करने के कितने बार इस पर ध्यान दिए बिना त्रुटि प्राप्त होती है:

This code has slept for the duration of the default timeout waiting for an Element to be present. If the test is still passing, consider using Element#exists? instead of rescuing UnknownObjectException
Watir::Exception::UnknownObjectException: element located, but timed out after 30 seconds, waiting for true condition on {:name=>"loan_product", :tag_name=>"select"}
from /Users/.rvm/gems/ruby-2.2.2/gems/watir-6.0.2/lib/watir/elements/element.rb:528:in `rescue in wait_for_present"

तत्व मौजूद हैं और सभी चयन सूची विकल्प हैंसच के रूप में दिखाएं, लेकिन दुर्भाग्य से वे परीक्षण के अनुसार दिखाई नहीं दे रहे हैं या उपस्थित नहीं हैं। आखिरी विकल्प मुझे लगता है कि जावास्क्रिप्ट में हेरफेर करना है, लेकिन अगर मैं इसकी मदद कर सकता हूं तो मैं इस मार्ग से नीचे नहीं जाना चाहता हूं। अगर कोई मुझे सही रास्ते पर रख सकता है और सलाह दे सकता है कि मैं इस मुद्दे को कैसे प्राप्त कर सकता हूं तो मैं वास्तव में इसकी सराहना करता हूं। कोई भी सहायताकाफी प्रशंसनीय होगी।

उत्तर:

जवाब के लिए 2 № 1

यह एक अजीब है। मेरे मैक पर चयन सूची फ़ायरफ़ॉक्स में दिखाई देती है, लेकिन क्रोम में नहीं। विकल्प पर क्लिक करने से पहले वॉटर चेक चुनने के लिए चुनिंदा सूची के लिए जांच करता है। विकल्प तत्व सेलेनियम में लागू किया गया है ताकि यह हमेशा दिखाई दे सके।

तो यह आपके लिए काम करेगा:

browser.option(label: "Working capital").click

मुझे यकीन नहीं है कि वे अलग क्यों हैं, या क्यामुद्दा विंडोज बनाम क्रोम पर है। संभावित रूप से क्रोमरेड्राइवर उसी का उपयोग कर रहा है जिसे जावास्क्रिप्ट कोड के रूप में प्रदर्शित किया गया है। आप शायद इसे क्रोमरेड्रिवर बग के रूप में उठा सकते हैं।