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.
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: