1. 程式人生 > >Java + selenium 元素定位(3)之By TagName

Java + selenium 元素定位(3)之By TagName

input 等等 網頁 news ren pub static 做的 bug

本篇介紹findElement接口中的By TagName方法。首先,要知道什麽是tagname。之前我們使用F12開發者工具查看網頁元素是,發現每行代碼前都有<input>、<body>、<div>、<button>等等標簽,這些標簽就是tagname了。但是我們都可以看出來,像是<div>、<button>、<input>這些常用的標簽,在網頁中出現的頻率是很高的,如果我們使用tagname來定位元素,可能定位到的就不是我們預想的元素。所以一般配合findElements接口使用,查找一組元素。

這裏舉例說明一下,比如,我要把火狐瀏覽器全屏,那我我要做的第一件事情就是,把光標聚焦到瀏覽器內部。聚焦這個動作,就可以通過tagname來實現。通過查看網頁代碼,我們知道,一個網頁<body>這個標簽是具有唯一性的。那麽我們就需要利用<body>這個標簽來完成聚焦動作。代碼展示如下

import java.util.concurrent.TimeUnit;
 
import org.openqa.selenium.By;
import org.openqa.selenium.Keys;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
 
  
public class ByClassName { public static void main(String[] args) throws Exception { System.setProperty("webdriver.gecko.driver", ".\\Tools\\geckodriver.exe"); WebDriver driver = new FirefoxDriver(); driver.manage().window().maximize(); driver.manage().timeouts().implicitlyWait(
5, TimeUnit.SECONDS); driver.get("http://news.baidu.com"); driver.findElement(By.tagName("body")).sendKeys(Keys.F11); } }

這次的舉例我使用了火狐瀏覽器,而不是之前慣用的谷歌瀏覽器。是因為我發現按F11,全屏這個操作,在谷歌瀏覽器中是不能成功的,沒有任何報錯信息。所以可能是Chromedriver.exe的小bug吧。這個問題的解決方案,後續如果發現了,會更新上來的。

Java + selenium 元素定位(3)之By TagName