利用Selenium+java實現淘寶自動結算購物車商品(附源代碼)


轉載請聲明原文地址!

本次的主題是利用selenium+java實現結算購買購物車中的商品。

話不多說,本次首先要注意的是谷歌瀏覽器的版本,瀏覽器使用的驅動版本,selenium的jar包版本。

 

谷歌瀏覽器版本

71.0.3578.80(正式版本) (64 位)

谷歌瀏覽器驅動

 

文末免費下載

Selenium版本

selenium-server-standalone-3.4.0

文末免費下載

 

首先最重要的還是配置環境,首先記住你谷歌瀏覽器驅動的保存地址,在環境變量后邊添加 ;+保存地址(注意前面的分號必需) ,

例如我這里是 ;C:\Users\admin\Desktop\download\jar

    在eclipse中新建一個java project ,自行完善類、包。導入selenium jar進你的project。

在啟動我的拖拉機之前,我想分享一下我完成這個小東西所經歷的。首先你有一定的F12基礎,你想輸入某個數據進對方的文本框里,就必須知道這個框的具體位置,通過id、className、name等來鎖定,最好找唯一的屬性。我在定位元素的時候,用了常用的的driver.findElement(By.id/className/xpath),對於谷歌瀏覽器來說,xpath是可以比較方便地copy出來的。找到你想要定位的元素,其實不是難事,細心點,認真比對都可以找到。對於淘寶這個網頁來說,最讓我頭疼的是href="javascript:;"這種看似有方便的ID實則永遠也無法實現你想要的功能,這是最大的坑,具體可以百度javascript:;的功用。

本來我的思路本來是:登陸搜索商品選擇商品選擇套餐購買選擇地址付款

但是由於鄙人不才,被立即購買這個按鈕的href="javascript:;"絆倒了,日后有機會一定爬起來。鑒於正常思路進不去,所以我猥瑣地退了一步,事先把要購買的商品加入到購物車,所以下文的思路是:打開淘寶主頁點擊購物車登陸勾選要結算的商品選址付款

你們也許在此前忙着尋找各種暴力、非暴力繞過淘寶滑塊驗證的方法,這里的話,我又偷了一次懶,使用綁定的微博登陸淘寶,不需要驗證這種麻煩的東西。

代碼如下:

首先在class里面配置你瀏覽器驅動,前提是你的path變量也配置好了。

    System.setProperty("webdriver.chrome.driver","C:\\Users\\admin\\Desktop\\download\\jar\\chromedriver.exe");//紅色部分為驅動的存放地址

WebDriver driver =new ChromeDriver();

Actions action = new Actions(driver);

 

driver.get("https://www.taobao.com/");//打開淘寶主頁

Thread.sleep(2000);

 

     driver.findElement(By.id("mc-menu-hd")).click();//購物車按鈕

     Thread.sleep(2000);

     driver.findElement(By.id("J_Quick2Static")).click(); //選擇用密碼登陸

     Thread.sleep(2000);

     driver.findElement(By.className("weibo-login")).click();//選擇微博登陸

     Thread.sleep(2000);

     driver.findElement(By.name("username")).sendKeys(new String[] {"___________"});//橫線換為你的微博賬號

     driver.findElement(By.name("password")).sendKeys(new String[] {"__________"});//橫線換為你的微博密碼

     driver.findElement(By.className("W_btn_g")).click();//確認使用微博登陸

 

Thread.sleep(5000);

driver.findElement(By.xpath("//*[@id=\"J_Order_s_3364814286_1\"]/div[1]/div/div/label")).click();//勾選第一個商家的所有商品,這里的xpath地址因人而異,根據你的淘寶購物車修改紅色部分id

Thread.sleep(1000);

driver.findElement(By.id("J_Go")).click();//購買

Thread.sleep(1000);

driver.findElement(By.className("go-btn")).click();//使用默認地址,確認購買

 

      

Thread.sleep(15000);//15,讓支付寶完成安全檢測

 

     driver.findElement(By.id("payPassword_rsainput")).sendKeys(new String[] {"——————————"});//橫線換為你的支付密碼

     Thread.sleep(1000);

     driver.findElement(By.id("J_authSubmit")).click();//購買

 

try {

 

driver.manage().timeouts().implicitlyWait(15, TimeUnit.SECONDS);

} catch (Exception e) {

e.printStackTrace();

}

}

}

好了,不出意外的話,這波操作將會在1分鍾內完成,以上出現的時間等待為的是讓網頁有點時間加載所需元素,不然會報錯提示找不到此element。本教程僅適用於初學軟件測試的朋友,代碼里出現的商品id、name等你不一定能對上,根據實際情況,自己耐心修改,不懂就多問,努力會有收獲的。

下面是下載地址:

Selenium+瀏覽器驅動免費下載地址:

https://download.csdn.net/download/wsad4196/10886629

源代碼:

https://download.csdn.net/download/wsad4196/10886630


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM