国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當(dāng)前位置: 首頁 > news >正文

高端網(wǎng)站開發(fā)建設(shè)網(wǎng)站媒體推廣

高端網(wǎng)站開發(fā)建設(shè),網(wǎng)站媒體推廣,外貿(mào)手機(jī)商城網(wǎng)站建設(shè) 深圳,可制作網(wǎng)頁的軟件selenium的前置準(zhǔn)備工作可以參考我之前的博客:Java測試——selenium的安裝與使用教程 這篇博客講解一下selenium的常見操作 先創(chuàng)建driver ChromeDriver driver new ChromeDriver();輸入網(wǎng)址 driver.get("https://www.baidu.com");常見操作 查找元素…

selenium的前置準(zhǔn)備工作可以參考我之前的博客:Java測試——selenium的安裝與使用教程

這篇博客講解一下selenium的常見操作

先創(chuàng)建driver

ChromeDriver driver = new ChromeDriver();

輸入網(wǎng)址

driver.get("https://www.baidu.com");

常見操作

查找元素

我們可以通過下面這個方法查找頁面的一個元素

driver.findElement(By.cssSelector(""))

該方法返回一個WebElement元素

例如,我們查找百度的搜索框

WebElement element = driver.findElement(By.cssSelector("#kw"));

也可以通過下面這個方法查找頁面中多個元素

findElements()

輸入文本

通過對WebElement元素調(diào)用下面這個方法來輸入文本

sendKeys();

例如,我們在搜索框中輸入蔡徐坤

driver.findElement(By.cssSelector("#kw")).sendKeys("蔡徐坤");

點擊click

我們可以通過對WebElement元素調(diào)用下面這個方法來實現(xiàn)在網(wǎng)站中點擊該元素

click();

例如我們點擊百度中的百度一下按鈕

driver.findElement(By.cssSelector("#su")).click();

提交submit

我們可以通過對WebElement元素調(diào)用下面這個方法來實現(xiàn)提交該表單元素

submit();

例如我們提交百度一下的表單

driver.findElement(By.cssSelector("#su")).submit();

清除clear

我們可以通過對WebElement元素調(diào)用該方法,來實現(xiàn)清除之前的輸入

clear();

例如,我們可以清除之前在輸入框中的輸入

driver.findElement(By.cssSelector("#kw")).clear();

獲取文本

我們可以對WebElement元素調(diào)用該方法,獲取元素中的文本,最終返回一個字符串

getText();

例如獲取下面這個熱搜中的文本,將其打印在控制臺上
在這里插入圖片描述

System.out.println(driver.findElement(By.cssSelector("#hotsearch-content-wrapper > li:nth-child(2) > a > span.title-content-title")).getText());

獲取屬性

而如果我們嘗試獲取百度一下按鈕中的文字,會發(fā)現(xiàn)無法獲取到文字,這是因為百度一下是value這個鍵對應(yīng)的值,我們可以通過調(diào)用下面這個方法,實現(xiàn)獲取WebElement元素相應(yīng)的鍵對應(yīng)的值,其結(jié)果為字符串

getAttribute();

例如,我們可以獲取輸入框的相關(guān)鍵對應(yīng)的值

System.out.println(driver.findElement(By.cssSelector("#su")).getAttribute("value"));
System.out.println(driver.findElement(By.cssSelector("#su")).getAttribute("id"));
System.out.println(driver.findElement(By.cssSelector("#su")).getAttribute("class"));
System.out.println(driver.findElement(By.cssSelector("#su")).getAttribute("type"))

獲取頁面標(biāo)題

這里的“百度一下,你就知道”,就是我們當(dāng)前頁面的標(biāo)題
在這里插入圖片描述

我們可以通過下面這個方法來獲取當(dāng)前頁面的標(biāo)題,其結(jié)果返回一個字符串

getTitle();

例如我們將該頁面標(biāo)題打印到控制臺上

System.out.println(driver.getTitle())

獲取頁面url

這里的內(nèi)容,就是當(dāng)前頁面的url
在這里插入圖片描述
我們通過下面這個方法來獲取當(dāng)前頁面的url,其結(jié)果返回一個字符串

System.out.println(driver.getCurrentUrl())

窗口

調(diào)整窗口大小

將窗口最大化

driver.manage().window().maximize();

將窗口最小化

driver.manage().window().minimize();

將窗口全屏顯示

driver.manage().window().fullscreen();

手動設(shè)置窗口大小(第一個元素是寬度,第二個元素是高度)

driver.manage().window().setSize(new Dimension(1024,2048));

窗口的切換

如果我們使用自動化程序,點擊“圖片”超鏈接,進(jìn)入到百度圖片的頁面,然后獲取百度一下按鈕,就會發(fā)現(xiàn)結(jié)果報錯了
在這里插入圖片描述

在這里插入圖片描述
具體實現(xiàn)代碼如下:

driver.get("https://www.baidu.com");
driver.findElement(By.cssSelector("#s-top-left > a:nth-child(6)")).click();
driver.findElement(By.cssSelector("#homeSearchForm > span.s_btn_wr > input"));
driver.quit();

最終程序報錯,沒有找到“百度一下”按鈕
在這里插入圖片描述

通過回顧剛才的圖片可以看到,我們這時開了兩個窗口,而自動化程序現(xiàn)在操作的還是第一個窗口,因此訪問不到百度圖片的“百度一下”

事實上,每打開一個標(biāo)簽頁,瀏覽器就會自動給標(biāo)簽頁一個標(biāo)識:句柄

我們可以通過下面這個方法獲取所有界面的句柄,其結(jié)果為Set< String >

getWindowHandles();

也可以只獲取當(dāng)前頁面的句柄打印出來

System.out.println(driver.getWindowHandle());

我們可以通過下面這個操作來獲取所有頁面的句柄,將他們打印出來

Set<String> handles = driver.getWindowHandles();
for (String handle:handles) {System.out.println(handle);
}

可以使用下面這個方法,傳輸一個句柄,來切換頁面

driver.switchTo().window(handle);

屏幕截圖

如果我們自動化實現(xiàn)在百度中搜索蔡徐坤,并且點擊下圖中這個名字
在這里插入圖片描述
具體代碼如下

driver.get("https://www.baidu.com");
driver.findElement(By.cssSelector("#kw")).sendKeys("蔡徐坤");
driver.findElement(By.cssSelector("#su")).click();
driver.findElement(By.cssSelector("#\\31  > div > div > div > div > div.cos-row.row-text_Johh7.row_5y9Az > div > a > div > p > span > span"));
driver.quit();

最終會發(fā)現(xiàn)代碼報錯,沒有找到該元素
在這里插入圖片描述
我們可以使用屏幕截圖,看一下當(dāng)前頁面是什么樣子

使用下面的方法,可以將當(dāng)前界面截屏為java中的file對象

getScreenshotAs(OutputType.FILE);

我們可以將file對象拷貝為已有的文件,實現(xiàn)將屏幕截圖放到指定路徑下的操作

首先導(dǎo)入依賴

<dependency><groupId>commons-io</groupId><artifactId>commons-io</artifactId><version>2.6</version>
</dependency>

使用下面這個代碼,可以實現(xiàn)拷貝文件操作

FileUtils.copyFile(源文件, 目標(biāo)文件);

完整代碼如下:

driver.get("https://www.baidu.com");
driver.findElement(By.cssSelector("#kw")).sendKeys("蔡徐坤");
driver.findElement(By.cssSelector("#su")).click();File srcFile = driver.getScreenshotAs(OutputType.FILE);
//將屏幕截圖放到指定路徑下
String filename = "my.png";
FileUtils.copyFile(srcFile, new File(filename));driver.findElement(By.cssSelector("#\\31  > div > div > div > div > div.cos-row.row-text_Johh7.row_5y9Az > div > a > div > p > span > span"));
driver.quit();

加上上述代碼,我們看一下瀏覽器當(dāng)前的樣子
在這里插入圖片描述
可以發(fā)現(xiàn),瀏覽器還沒有渲染完畢,我們的代碼就開始執(zhí)行查找元素了,因此會發(fā)生找不到的情況

因此,我們只需要加上休眠時間,讓瀏覽器有時間渲染即可

讓瀏覽器休眠3秒

Thread.sleep(3000);

可以看到,這時渲染的畫面是正常的
在這里插入圖片描述

http://aloenet.com.cn/news/39183.html

相關(guān)文章:

  • 做數(shù)據(jù)網(wǎng)站手機(jī)百度如何發(fā)布作品
  • 怎么用自己電腦做網(wǎng)站服務(wù)器嗎企業(yè)網(wǎng)站設(shè)計與實現(xiàn)論文
  • avada做網(wǎng)站seo公司北京
  • 做啤酒行業(yè)的網(wǎng)站公司網(wǎng)站建設(shè)流程
  • 網(wǎng)站開發(fā)需求描述seo站
  • 怎么做網(wǎng)站在里面填字qq群推廣網(wǎng)站免費
  • 怎樣做1個網(wǎng)站搜索引擎搜索器
  • 站長工具推薦代寫軟文
  • 做設(shè)計靈感的網(wǎng)站seo團(tuán)隊
  • 鄭州網(wǎng)站建設(shè)程序網(wǎng)站頁面禁止訪問
  • 公司的企業(yè)文化怎么寫微信搜一搜seo
  • 做的好的微信商城網(wǎng)站什么是seo推廣
  • 網(wǎng)站的后臺是開發(fā)做的八零云自助建站免費建站平臺
  • 做網(wǎng)站python和php哪個好學(xué)百度推廣怎么弄
  • 深圳 汽車網(wǎng)站建設(shè)百度網(wǎng)站首頁提交入口
  • seo診斷服務(wù)優(yōu)化什么
  • 中國哪些網(wǎng)站做軟裝seo廠商
  • 四川疫情最新消息今天優(yōu)化服務(wù)
  • 網(wǎng)站設(shè)計建設(shè)定制中國搜索引擎市場份額
  • 網(wǎng)站建設(shè)策劃方案如何寫愛站網(wǎng)關(guān)鍵詞查詢網(wǎng)站的工具
  • 新媒體營銷策略有哪些百度推廣優(yōu)化中心
  • 備案通過后 添加網(wǎng)站谷歌瀏覽器下載手機(jī)版安卓
  • 網(wǎng)站界面用什么做廈門百度推廣排名優(yōu)化
  • 高端的網(wǎng)站建設(shè)百度seo有用嗎
  • 造價咨詢公司加盟分公司上海百度搜索排名優(yōu)化
  • 鄭州企業(yè)建站模板河南疫情最新消息
  • google 垃圾網(wǎng)站推廣軟文300字范文
  • 做網(wǎng)站自己租服務(wù)器還是網(wǎng)絡(luò)公司如何發(fā)布自己的廣告
  • 建設(shè)網(wǎng)站的好處百度云服務(wù)器
  • 做宣傳網(wǎng)站需要多少錢附近電商培訓(xùn)班