Selenium Cliog Ceangal Le href Luach

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.




Cliog Ceangal Le href

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: