Java + selenium 元素定位(2)之By LinkText/PartialLinkText

來源:互聯網
上載者:User

標籤:跳轉   連結   str   static   頁面   tps   分享圖片   img   void   

       本章介紹的兩種方法都是對於網頁上的文字連結的定位操作。根據名字,我們就可以看出來,這兩者其實很相似,那麼他們的不同在哪裡呢。

       By LinkText()方法,是對一個的網頁超連結,我們所需要輸入的關鍵字為該超連結的所有文字。

       By PartialLinkText()方法,看到part這個單詞我們就可以知道,當這個文字超連結太長時,我們不想輸入那麼多的字,就可以調用這個方法,主要輸入屬於這個超連結顯示文字的部分就可以了。當然,為了防止因為文字出現位置太多,定位失敗,建議選擇的字元要有唯一性。

 

        這裡接著使用百度首頁為例子,例子為圖中紅框內容,代碼展示如下:

 

import org.openqa.selenium.By;import org.openqa.selenium.WebDriver;import org.openqa.selenium.chrome.ChromeDriver;  public class FindElement_LinkText {    public static void main(String[] args) throws Exception {              System.setProperty("webdriver.chrome.driver", ".\\Tools\\chromedriver.exe");        WebDriver driver = new ChromeDriver();        driver.manage().window().maximize();          driver.get("https://www.baidu.com");        //By linkText 尋找元素        driver.findElement(By.linkText("新聞")).click();        Thread.sleep(1000);
//返回百度首頁
driver.navigate().back();
Thread.sleep(1000);
//By PartialLinkText 尋找元素 driver.findElement(By.partialLinkText("設為首頁")).click(); }}

      代碼中出現的Thread.sleep(),是停頓的意思,括弧中的數字單位為ms。加上這段代碼是為了保證整個程式的可執行性。因為在實際操作做,經常出現代碼報錯,說定位不到元素。後來經過個方面的查證,發現不是元素定位錯了,而是因為在頁面跳轉的時候,可能載入速度比較慢,跟不上代碼執行速度,導致的元素定位失敗。所以在出現頁面跳轉或者轉變的時候,都建議在該行代碼下加一個Thread.sleep()操作,讓代碼等待頁面載入完成之後再執行,可以避免出現這種以為網頁載入慢導致的元素定位失敗錯誤。

Java + selenium 元素定位(2)之By LinkText/PartialLinkText

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.