最近有一個頁面的內容很多,有的元素需要滑動到底部才能看到,所以就研究一下滑動,下面是我學習到的兩種滑動方式
一:用js滑動
用js滑動的思路是很簡單,首先是先定位到這個元素,定位到之后不做任何操作,然后把Driver實例化為js對象,之后運用 executeScript()方法進行滑動,
具體代碼如下面所示:
WebElement ele=driver.findElementByLinkText("聯系我們");//定位到元素
System.out.println(ele);//打印出定位的內容
thread.sleep(2000);//加2秒等待
JavascriptExecutor dj=(JavascriptExecutor)driver;//將Driver實例化為js對象
dj.executeScript("arguments[0].scrollIntoViewIfNeeded(true);", ele);//滑動到上面定位到的元素的位置
二:用swipe進行滑動(只能切換到原生的app里面才生效)
用swipe滑動也是一種不錯的選擇,但是swipe是相對於屏幕滑動的,每次滑動的距離是有限的。
下面是用swipe滑動的代碼:
driver.context("NATIVE_APP"); //切換到NATIVE_APP里面
int width = driver.manage().window().getSize().width;//獲取當前屏幕的寬度
int height = driver.manage().window().getSize().height;//獲取當前屏幕的高
thread.sleep(1000);
driver.swipe(width/2,height*3/4, width/2,height/4,1000);//向上滑動
thread.sleep(1000);
driver.swipe(width/2,height/4,width/2,height *3 /4,1000);//向下滑動
在此說明一下:
我最開始打算用的swipe滑動,后來發現用swipe滑動需要切換到原生的native里面滑動才生效,而且滑動的距離是有限的,但我需要的元素是在頁面的最下面,如果用swipe需要滑動很多次,所以我就想有沒有一種方式可以一次滑動到我想要看到的那個元素的地方,於是又在網上找了很多方法,發現用js滑動是很實用的。