सेलेनियम वेब ड्राईभरमा, हामी वेब एलिमेन्टहरूसँग अन्तर्क्रिया गर्न सक्ने धेरै तरिकाहरू छन्, जस्तै तत्वको आईडी, एक्सपाथ, सीएसएस, आदि… द्वारा।
हामी linkText
द्वारा लिंक क्लिक गर्न सक्छौं वा partialLinkText
यी विधिहरू राम्रो छन् यदि हामीलाई
बीचको अपेक्षित पाठ थाहा छ भने ट्यागहरू
जहाँसम्म जब हामी स्थानीयकरण वा अन्तर्राष्ट्रियकरण जाँच गर्छौं, पाठ अनुरूप अनुवाद गरिएको छ र हामी अब लिT्क टेक्स्ट वा आंशिक लिंक लिंक प्रयोग गर्न सक्षम छैनौं, विशेष गरी यदि एन्कर ट्यागले कुनै आईडी वा वर्ग समावेश गर्दैन।
मानौं हामी लिंकमा क्लिक गर्न चाहान्छौं जुन पोइन्ट | profile.html
,
उदाहरण को लागी
View Profile
माथि उल्लेख गरिए अनुसार हामी प्रयोग गर्न सक्छौं
driver.findElement(By.linkText('View Profile')).click()
र यसले काम गर्दछ, जबसम्म हामी अंग्रेजी भाषाको पृष्ठमा छौं।
जब हामी भाषा जर्मनमा परिवर्तन गर्दछौं, उदाहरणको लागि, हाम्रो लिंक अब प्रदर्शित हुन्छ
Profil ansehen
अब, लाइन
driver.findElement(By.linkText('View Profile')).click()
असफल हुने छ किनभने त्यहाँ पाठ पृष्ठको साथ प्रोफाइल पृष्ठमा कुनै लिंक छैन।
यसलाई पार गर्ने एउटा तरिका यसको | _ _ _ _ | द्वारा लिंक क्लिक गर्नु हो मान, किनकि साइटको भाषाले href लिंक परिवर्तन गर्दा पनि उही स्थानमा स to्केत गर्नुपर्दछ।
अर्को शब्दमा, अन्तर्राष्ट्रियकरणले लि of्कहरूको href लाई प्रभाव पार्नुहुन्न।
वेब ड्राईभरसँग स्ट्रेन्डलोन र लि h्क क्लिक गर्ने सीधा तरीका छैन यसको href मूल्य द्वारा। यसको सट्टामा, हामीले पृष्ठमा सबै लिंकहरू प्राप्त गर्न आवश्यक छ, href एट्रिब्यूट निकाल्नुहोस् र त्यसपछि हामीले अपेक्षा गरेको भन्दा href मानहरू तुलना गर्नुहोस्।
मानौं हामीसँग निम्न लि links्कहरू छन् र हामी प्रोफाइल लिंकमा क्लिक गर्न चाहन्छौं
href
View Profile Transactions
त्यसो भए हामी public void clickLinkByHref(String href) {
प्रयोग गर्न सक्छौं
List anchors = driver.findElements(By.tagName('a');
Iterator i = anchors.iterator();
while(i.hasNext()) {
WebElement anchor = i.next();
if(anchor.getAttribute('href').contains(href)) {
anchor.click();
break;
}
} }
र त्यसपछि माथिको प्रकार्यले पृष्ठमा सबै लिंकहरू प्राप्त गर्दछ र तिनीहरूमार्फत दोहोरिन्छ र जब यसले प्रोफाइल समावेश गर्ने लि link्क फेला पार्दछ, वेब ड्राईभरले लिंक क्लिक गर्नेछ।
नोट गर्नुहोस्, यदि हामीसँग उनीहरूमा शब्द प्रोफाइलसँग धेरै लिंकहरू छन् भने, माथिको प्रकार्यले सधैं शब्द प्रोफाइल समावेश गर्ने पहिलो लि link्क क्लिक गर्दछ। हामी माथिको कोड परिमार्जन गर्न सक्दछौं जुन लिंकहरू क्लिक गर्न चाहन्छौं समावेश गर्नका लागि:
clickLinkByHref('Profile')
थप पठन: