Selenium Klik Link Kanthi Nilai href

Ing Selenium WebDriver, ana sawetara cara kanggo bisa sesambungan karo elemen web, kayata miturut ID elemen, XPath, CSS, lsp.

Kita uga bisa ngeklik link kanthi linkText utawa partialLinkText. Cara iki apik yen kita ngerti teks sing diarepake antarane tags

Nanging nalika nindakake tes lokalisasi utawa internasionalisasi, teks kasebut bakal diterjemahake lan kita ora bisa nggunakake linkText utawa parsialLinkText, luwih-luwih yen tag jangkar ora ngemot ID utawa kelas apa wae.


Upamane kita pengin ngeklik link sing nuduhake profile.html,

tuladhane


View Profile

Kaya sing wis kasebut sadurunge, kita bisa nggunakake



driver.findElement(By.linkText('View Profile')).click()

lan iku bakal bisa digunakake, anggere kita ana ing kaca sing nganggo basa Inggris.

Nalika ngganti basa dadi Jerman, contone, link saiki bakal ditampilake

Profil ansehen

Saiki, baris


driver.findElement(By.linkText('View Profile')).click()

bakal gagal amarga ora ana link ing kaca profil nganggo teks kasebut.

Salah sawijining cara kanggo ngatasi iki yaiku ngeklik link kanthi href Nilai, amarga sanajan basa situs diganti link href isih kudu nuduhake lokasi sing padha.

Kanthi tembung liya, internasionalisasi ora bakal nyebabake pengaruh link.

WebDriver ora duwe cara mandhiri lan langsung ngeklik link kanthi nilai href. Nanging, kita kudu entuk kabeh tautan ing kaca, ngekstrak atribut href banjur mbandhingake nilai href karo sing dikarepake.




Klik Link Miturut href

Umpama kita duwe link ing ngisor iki lan kita pengin ngeklik link profil

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;
}
} }

Banjur kita bisa nggunakake clickLinkByHref('Profile')

banjur fungsi ing ndhuwur bakal entuk kabeh tautan ing kaca kasebut lan terus diubengi lan nalika nemokake link sing ngemot profil, WebDriver bakal ngeklik link kasebut.

Elinga, yen kita duwe sawetara tautan karo profil tembung, fungsi ing ndhuwur bakal ngeklik tautan pisanan sing ngemot tembung profil. Kita bisa ngowahi kode ing ndhuwur kanggo nyakup tautan sing pengin diklik:


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;
}
} }

Wacan luwih lanjut: