Ann an Selenium WebDriver, tha grunn dhòighean anns an urrainn dhuinn eadar-obrachadh le eileamaidean lìn, leithid le ID ID, XPath, CSS, msaa…
Faodaidh sinn cuideachd ceanglaichean a bhriogadh le linkText
no partialLinkText
. Tha na modhan sin math ma tha fios againn air an teacsa ris a bheil dùil eadar an
tagaichean.
Ach nuair a bhios sinn a ’dèanamh deuchainnean ionadail no eadar-nàiseantachd, tha an teacsa air eadar-theangachadh a rèir sin agus chan urrainn dhuinn tuilleadh ceangal a dhèanamh le linkText no partialLinkText, gu sònraichte mura h-eil ID no clas anns na tagaichean acair.
Osbarr tha sinn airson ceangal a bhriogadh a tha a ’comharrachadh profile.html
,
m.e.
View Profile
Mar a chaidh a ràdh roimhe, faodaidh sinn a chleachdadh
driver.findElement(By.linkText('View Profile')).click()
agus obraichidh sin, fhad ‘s a bhios sinn air duilleag le Beurla.
Nuair a dh ’atharraicheas sinn an cànan gu Gearmailtis, mar eisimpleir, tha an ceangal againn a-nis a’ taisbeanadh
Profil ansehen
A-nis, an loidhne
driver.findElement(By.linkText('View Profile')).click()
dh ’fhàilligeadh leis nach eil ceangal air duilleag a’ phròifil leis an teacsa sin.
Is e aon dòigh air faighinn thairis air seo a bhith a ’briogadh ceangal le a href
luach, oir eadhon nuair a dh ’atharraicheas cànan na làraich bu chòir don cheangal href fhathast a bhith a’ comharrachadh an aon àite.
Ann am faclan eile, cha bu chòir eadar-nàiseantachd buaidh a thoirt air href nan ceanglaichean.
Chan eil dòigh neo-eisimeileach agus dìreach aig WebDriver airson ceangal a bhriogadh a rèir a luach href. An àite sin, feumaidh sinn na ceanglaichean gu lèir air an duilleag fhaighinn, an fheart href a thoirt a-mach agus an uairsin coimeas a dhèanamh eadar luachan href leis na tha sinn a ’dùileachadh.
Osbarr tha na ceanglaichean a leanas againn agus tha sinn airson cliogadh air a ’cheangal phròifil
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;
}
} }
An uairsin is urrainn dhuinn clickLinkByHref('Profile')
a chleachdadh
agus an uairsin gheibh an gnìomh gu h-àrd na ceanglaichean gu lèir air an duilleag agus itealaich troimhe agus nuair a lorgas e ceangal anns a bheil pròifil, cliogaidh WebDriver an ceangal.
Thoir fa-near, ma tha grunn cheanglaichean againn leis a ’phròifil facal annta, bidh an gnìomh gu h-àrd an-còmhnaidh a’ briogadh air a ’chiad cheangal anns a bheil pròifil nam faclan. Faodaidh sinn an còd gu h-àrd atharrachadh gus gabhail a-steach dè na ceanglaichean a tha sinn airson cliogadh:
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;
}
} }
Barrachd leughaidh: