A cikin Selenium WebDriver, akwai hanyoyi da yawa da zamu iya hulɗa tare da abubuwan yanar gizo, kamar ta ID ɗin ID, XPath, CSS, da sauransu…
Hakanan zamu iya danna hanyoyin ta linkText
ko partialLinkText
. Waɗannan hanyoyin suna da kyau idan mun san rubutun da ake tsammani tsakanin
Alamomi
Koyaya lokacin da muke yin gwaji na gida ko na duniya, ana fassara rubutu yadda yakamata kuma ba za mu iya amfani da linkText ko partialLinkText ba, musamman idan alamun anga ba su da wata ID ko aji.
A ce muna son danna mahadar da ke nuni zuwa profile.html
,
mis
View Profile
Kamar yadda aka ambata a baya, zamu iya amfani
driver.findElement(By.linkText('View Profile')).click()
kuma hakan zai yi aiki, muddin muna kan shafi mai harshen Turanci.
Lokacin da muka canza harshe zuwa Jamusanci, alal misali, hanyar haɗin yanar gizonmu yanzu tana nunawa
Profil ansehen
Yanzu, layi
driver.findElement(By.linkText('View Profile')).click()
zai kasa saboda babu hanyar haɗi akan shafin bayanin martaba tare da wannan rubutun.
Hanya ɗaya da za a shawo kan wannan ita ce danna hanyar haɗi ta href
darajar, saboda koda lokacin da shafin yanar gizon ya canza hanyar haɗin href yakamata ya nuna wuri ɗaya.
A takaice dai, haɓaka ƙasashen duniya ba zai tasiri tasirin hanyoyin ba.
WebDriver ba shi da wata hanya madaidaiciya kuma kai tsaye ta danna hanyar haɗi ta ƙimar href. Madadin haka, muna buƙatar samun duk hanyoyin haɗin yanar gizon, cire sifa ta href sannan kuma kwatanta ƙimar href da abin da muke tsammani.
A ce muna da waɗannan hanyoyin haɗi kuma muna son danna mahadar bayanan martaba
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;
}
} }
Sannan zamu iya amfani da clickLinkByHref('Profile')
sannan aikin da ke sama zai samo duk hanyoyin da ke shafin sannan kuma ya bi su idan ya sami hanyar haɗi wanda ya ƙunshi bayanin martaba, WebDriver zai danna mahaɗin.
Lura, idan muna da hanyoyi da yawa tare da bayanin kalma a cikin su, aikin da ke sama koyaushe zai danna farkon mahaɗin da ke ɗauke da kalmar kalmar. Zamu iya canza lambar da ke sama don hada wanne daga hanyoyin da muke son latsawa:
public void clickLinkByHref(String href, int position) {
List anchors = driver.findElements(By.tagName('a');
Iterator i = anchors.iterator();
int j = 0;
while(i.hasNext()) {
WebElement anchor = i.next();
if(anchor.getAttribute('href').contains(href)) {
j++;
}
if(anchor.getAttribute('href').contains(href)
&& j == position) {
anchor.click();
break;
}
} }
Kara karantawa: