日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

selenium查找文本_在Selenium中查找具有链接文本和部分链接文本的元素

發(fā)布時間:2023/12/3 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 selenium查找文本_在Selenium中查找具有链接文本和部分链接文本的元素 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

selenium查找文本

Selenium中CSS定位器是一個基本概念,每個旨在使用Selenium執(zhí)行自動化測試的測試人員都應該意識到這一點。 在Selenium中充分使用CSS定位器可以幫助您以更高效,更徹底的方式執(zhí)行測試。 我從7年以來一直從事自動化測試行業(yè),而且我經(jīng)常觀察到測試人員在使用Selenium執(zhí)行自動化測試時 ,往往會忘記每個CSS定位器的用途。 新生很難理解他們,經(jīng)驗豐富的測試人員經(jīng)常會使用幾個選擇器在使用Selenium執(zhí)行自動化測試時在網(wǎng)頁上定位元素。

有時候,我看到經(jīng)驗豐富的自動化測試人員會花更長的時間查找元素,因為他們習慣于堅持自己喜歡的定位器。 這就是為什么我認為我會為Selenium中CSS定位器提供一個教程系列,以幫助萌芽的自動化測試人員提出這些定位器的戰(zhàn)略實現(xiàn)。 對于我們這些經(jīng)驗豐富的人來說,這將是一個快速而又好的總結。

當我們使用Selenium執(zhí)行自動化測試時,本文將介紹鏈接文本和部分鏈接文本的實際實現(xiàn)。 任何Web應用程序上的鏈接都可以幫助查找文本完全匹配或部分匹配的元素。 使用Selenium中的鏈接文本和部分鏈接文本,我們將能夠找到這兩個匹配項。 這是我關于Selenium中CSS Locator的系列教程的最后一篇文章。

您可以查看有關Selenium中不同CSS定位器的其他文章,這些文章可通過多種方式幫助您定位元素:

  • Selenium中的ID定位器
  • Selenium中的名稱定位器
  • Selenium中的類名定位器
  • Selenium中的標記名定位器
  • Selenium中CSS選擇器
  • Selenium中的XPath

如果您是Selenium的高級或中級實踐者,那么您可以喜歡上面提到的專門文章。 并獲得我們的完整指南,以幫助您說明Selenium中CSS定位器的實際演示。

查看Selenium WebDriver中每個CSS定位器的完整指南,并附帶示例

如此說來,讓我們了解如何利用Selenium中的鏈接文本和部分鏈接文本來定位網(wǎng)頁上的元素。

在Selenium中使用鏈接文本查找元素

為了使用Selenium中的鏈接文本訪問鏈接,使用下面引用的代碼:
driver.findElement(By.linkText("this is a link text"));

注意:在存在多個具有相似文本的鏈接的情況下,它將自動選擇第一個。

讓我們參考下面的代碼片段以了解用例。 在這種情況下,我們以Airbnb為例,通過鏈接匹配單擊果阿的任何一次停留。

帶有鏈接文本的div元素的引用屏幕快照:

import java.util.concurrent.TimeUnit; ? import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; import org.testng.Assert; ? public class LinkText { ?public static void main(String[] args) { // TODO Auto-generated method stub ????System.setProperty( "webdriver.chrome.driver" , ".\\ChromeDriver\\chromedriver.exe" ); WebDriver driver= new ChromeDriver(); driver.manage().timeouts().implicitlyWait( 20 , TimeUnit.SECONDS); ????driver.manage().window().maximize(); ????//Opening the air bnb Goa homestays page driver.get( " https://www.airbnb.co.in/s/Goa/all " ); ????//locating an element via link text in Selenium now, and clicking on that stay driver.findElement(By.linkText( "Standard One Bedroom Suite with Pool & Jacuzzi" )).click(); ?driver.quit(); } ? }

我們也可以使用Selenium中的部分鏈接文本來定位同一元素。 讓我們檢查一下!

在Selenium中使用部分鏈接文本定位元素

Selenium中的部分鏈接文本是通過鏈接定位元素的另一種方法。 從Selenium中的鏈接文本到部分鏈接文本的唯一區(qū)別是, 它不會查看字符串值的完全匹配,而是會進行部分匹配 。 因此,如果您要查找具有更大文本長度的鏈接,則可以避免只使用部分鏈接文本,而不必使用Selenium中的整個鏈接文本。

通過部分鏈接文本定位元素的語法。

driver.findElement(By.partialLinkText ("link text"));

參照上述情況,以下是與Airbnb相同停留時間的部分鏈接文本的代碼段:

import java.util.concurrent.TimeUnit; ? import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; import org.testng.Assert; ? public class PartialLinkText { ?public static void main(String[] args) { // TODO Auto-generated method stub ????System.setProperty( "webdriver.chrome.driver" , ".\\ChromeDriver\\chromedriver.exe" ); WebDriver driver= new ChromeDriver(); driver.manage().timeouts().implicitlyWait( 20 , TimeUnit.SECONDS); ????driver.manage().window().maximize(); ????//Opening the air bnb Goa homestays page driver.get( " https://www.airbnb.co.in/s/Goa/all " ); ????//locating an element via link text now and clicking on that stay driver.findElement(By.partialLinkText( "Pool & Jacuzzi" )).click(); ?driver.quit(); } ? }

有多個匹配結果時如何選擇正確的鏈接文本?

在Selenium中使用部分鏈接文本時,要記住的唯一一點是要使部分鏈接文本與頁面上的多個鏈接文本匹配。 在這種情況下,請確保您單擊的是所需的。

讓我們考慮另一種情況,當我們使用Selenium執(zhí)行自動化測試時,您最終會匹配多個鏈接文本,并希望僅針對指定的鏈接文本。 對于果阿島的相同寄宿家庭,我試圖在其中將帶有部分文本的元素定位為“池”。 因此,策略將是找出有許多住宿的家庭,其中有游泳池,然后單擊所需的住宿,然后發(fā)布。 以下參考代碼段表示如何使用Selenium中的部分鏈接文本從多個匹配結果中選擇正確的目標。

import java.util.List; import java.util.concurrent.TimeUnit; ? import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.chrome.ChromeDriver; import org.testng.Assert; ? public class LinkText { ?public static void main(String[] args) { // TODO Auto-generated method stub ????System.setProperty( "webdriver.chrome.driver" , ".\\ChromeDriver\\chromedriver.exe" ); WebDriver driver= new ChromeDriver(); driver.manage().timeouts().implicitlyWait( 20 , TimeUnit.SECONDS); ????driver.manage().window().maximize(); ????//Opening the air bnb Goa homestays page driver.get( " https://www.airbnb.co.in/s/Goa/all " ); ????//locating an element via link text now and clicking on that stay List<WebElement> poolNumber=driver.findElements(By.partialLinkText( List<WebElement> poolNumber=driver.findElements(By.partialLinkText( "Pool" )); ????//find the number of links with the text as pool int numberOfStaysWithPool= poolNumber.size(); ????System.out.println(numberOfStaysWithPool); ????for ( int k= 0 ; k<numberOfStaysWithPool; k++) { //printing all those links System.out.println(poolNumber.get(k).getText()); ??????} ????//select the luxury three bedroom apartment link poolNumber.get( 2 ).click(); poolNumber.get( ).click(); ?driver.quit(); } ? }

在上面的代碼片段中,我使用了findElements,因為我應該接收多個帶有部分文本的Web元素作為“池”。 現(xiàn)在,使用索引,我已經(jīng)導航到想要單擊的鏈接之一。 很簡單,不是嗎?

注意:鏈接文本和部分鏈接文本對于Selenium中CSS定位器都是區(qū)分大小寫的。

例如,假設一個鏈接“ 注冊 ”存在一個主頁上的類似鏈接“ 注冊 ”是出現(xiàn)在首頁上的頁腳。 在這種情況下,如果要使用鏈接文本“ REGISTER ”進行查找,它將自動在頁腳而不是另一個中選擇鏈接。

Selenium中的鏈接文本和部分鏈接文本定位器僅適用于給定Web應用程序的鏈接。 如果要查找鏈接以外的元素,則不能在Selenium中使用鏈接文本或部分鏈接文本定位器。 如果您正在處理應用程序中的鏈接,那么這也許是最好的定位器。 測試愉快!


翻譯自: https://www.javacodegeeks.com/2019/06/find-elements-link-text-partial-link-text-selenium.html

selenium查找文本

總結

以上是生活随笔為你收集整理的selenium查找文本_在Selenium中查找具有链接文本和部分链接文本的元素的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。