- दोस्तों,

मैं एक जावा-टूल बना रहा हूं, जावा-और Jaunt API का उपयोग करके HTML-पेज में कुछ फॉर्म input तत्वों को स्वचालित रूप से भरने की कोशिश कर रहा है।

HTML- कोड इस प्रकार है:

<fieldset class = "fieldsetlong">
<legend>searchprofile</legend>
<label for="reference">reference:</label>
<input maxlength="50" name="reference" id="reference" type="text" />
</fieldset>

<fieldset class = "fieldsetlong">
<legend>searchcriteria</legend>
<label for="surname">surname:</label>
<input name="searchprofile.surname" id="surname" type="text" />
</fieldset>

"सामान्य" इनपुट-फ़ील्ड reference (यह काम करता है) भरने के लिए जावा-कोड इस तरह दिखता है:

form.set("reference", "123Test");

दुर्भाग्य से, मैं नाम में डॉट-नोटेशन searchprofile.surname का उपयोग करने वाले फ़ील्ड को भरने में सक्षम नहीं हूं

यहाँ एक नमूना है जो मैंने कोशिश की है (सफलता के बिना):

form.set("surname", "TestPerson");
form.set("searchprofile.surname", "TestPerson");
form.set("name=\"searchprofile.surname\"", pers.getSurname());
form.set("id=\"surname\"", pers.getSurname());

इनमें से प्रत्येक कमांड के लिए मुझे एक NotFoundException मिलती है और यह नहीं पता कि मैं Jaunt के साथ ऐसा कर सकता हूँ या नहीं।

यह इस संबंध में किसी भी तरह की मदद की सराहना करेगा।

अग्रिम में धन्यवाद

संपादित करें - क्या JSoup के साथ डॉट-नॉटेड इनपुट-फील्ड searchprofile.surname तक पहुंचने का कोई रास्ता है?

HTML name में डॉट्स की अनुमति देता है - विशेषता है, लेकिन क्या Jaunt इस abc.name को स्वीकार करता है?

2
Baris 25 नवम्बर 2015, 17:25

2 जवाब

सबसे बढ़िया उत्तर

आज, Jaunt समाधान के साथ काम करें

form.set("searchprofile.surname", "TestPerson");

एक जादू की तरह काम किया।

मुझे नहीं पता कि समस्या पहले क्या थी लेकिन मुझे खुशी है कि इसने काम किया।

HTML डॉट्स और माइनस आदि का उपयोग करने की अनुमति देता है, जिसे मैंने किसी प्रकार के नेस्टेड फॉर्म या पदानुक्रम के रूप में गलत व्याख्या की है, लेकिन डॉट-नोटेशन केवल एक वैध name - HTML में विशेषता है।

0
Baris 26 नवम्बर 2015, 13:46

Jaunt के बारे में निश्चित नहीं, पहले कभी इसका इस्तेमाल नहीं किया। हालांकि Jsoup यहां इस्तेमाल होने वाली एक अच्छी सभ्य लाइब्रेरी लगती है। मैं स्वयं काफी समय से Jsoup का उपयोग कर रहा हूं और यह वेब पृष्ठों को स्क्रैप करने में इनपुट फ़ॉर्म भरने और सबमिट करने में बहुत सफल रहा है, और निश्चित रूप से, HTML पार्सिंग !

मैंने फार्म इनपुट फ़ील्ड भरने और निम्न उत्तर में सर्वर में सबमिट करने के लिए एक कदम दर कदम गाइड पोस्ट किया है: Jsoupp के साथ लॉगिन कैसे करें

मूल रूप से यह आपके कोड के समान काम करता है, एक बहुत ही संक्षिप्त उदाहरण होगा:

Connection.Response response = Jsoup.connect(url)
                                    .data("Name", "Value")
                                    .method(Method.POST).execute();
1
Community 23 मई 2017, 11:50