1. 程式人生 > >Selenium元素的處理-滑鼠事件|彈窗的處理|頁面切換

Selenium元素的處理-滑鼠事件|彈窗的處理|頁面切換

1:滑鼠相關操作

1.1:滑鼠左擊

public class testDemos {
	
	private FirefoxDriver driver;
	
	@Test
	public void testDemo() throws Exception{
		
		driver = new FirefoxDriver();
		
		driver.get("https://www.imooc.com/");
		
		driver.manage().window().maximize();
		
		WebElement element = driver.findElement(By.id("js-signin-btn"));
		//建立滑鼠事件的action物件
		Actions actions = new Actions(driver);
//click(WebElement element)為滑鼠左擊事件 actions.click(element).perform(); } }

1.2:滑鼠右擊

public class testDemos {
	
	private FirefoxDriver driver;
	
	@Test
	public void testDemo() throws Exception{
		
		driver = new FirefoxDriver();
		
		driver.get("https://www.imooc.com/");
		
		driver.manage().window().maximize();
		
		WebElement element = driver.findElement(By.id("js-signin-btn"));
		//建立滑鼠事件的action物件
		Actions actions = new Actions(driver);
//contextClick(WebElement element)為滑鼠右擊事件 actions.contextClick(element).perform(); } }

1.3:滑鼠雙擊事件

public class testDemos {
	
	private FirefoxDriver driver;
	
	@Test
	public void testDemo() throws Exception{
		
		driver = new FirefoxDriver();
		
		driver.get("https://www.imooc.com/");
		
		driver.manage().window().maximize();
		
		WebElement element = driver.findElement(By.id("js-signin-btn"));
		//建立滑鼠事件的action物件
		Actions actions = new Actions(driver);
//doubleClick(WebElement element)為滑鼠雙擊事件 actions.doubleClick(element).perform(); } }

1.4:滑鼠懸停事件

public class testDemos {
	
	private FirefoxDriver driver;
	
	@Test
	public void testDemo() throws Exception{
		
		driver = new FirefoxDriver();
		
		driver.get("https://www.imooc.com/");
		
		driver.manage().window().maximize();
		
		WebElement element = driver.findElement(By.xpath(".//*[@id='main']/div[2]/div/div[9]/div[1]/a/span"));
		//建立滑鼠事件的action物件
		Actions actions = new Actions(driver);
		//moveToElement(WebElement element)為滑鼠懸停事件
		actions.moveToElement(element).perform();
		//懸停後尋找linkText為以太坊的元素進行點選操作
		driver.findElement(By.linkText("以太坊")).click();

	}
}

2:彈窗的操作

2.1:確認取消對話方塊的操作

2.1.1:模擬鍵盤的操作確認或者取消對話方塊

public class AddGroup {
	
	//此處driver必須傳遞上一次的driver 順序執行
	public void addGroup(WebDriver driver) throws Exception{
		
	Thread.sleep(3000);
		//切放到第一個iframe
		driver.switchTo().frame("iframe_page");
		Thread.sleep(3000);
		//切換到第二個iframe
		driver.switchTo().frame("iframe_vehicle");
		//定位新增車組 進行選中
		driver.findElement(By.xpath(".//*[@id='div_tab']/div[1]/div[3]/ul/li[1]/a/span[1]")).click();
		
		driver.findElement(By.xpath(".//*[@id='form_group']/div[1]/div[1]/span/input[1]")).sendKeys("TEST");
		
		Thread.sleep(3000);
		
		driver.findElement(By.xpath(".//*[@id='div_tab']/div[2]/div[1]/div/div[2]/div[2]/div/a/span/span[1]")).click();
		
		Thread.sleep(3000);
		
		//對於按鍵盤的某個鍵就可以進行確定 或者取消的對話方塊可以採取下列操作
		Robot robot = new Robot();//在基本螢幕座標系中構造一個 Robot 物件
                robot.keyPress(KeyEvent.VK_ENTER);//按下給定的鍵
//                robot.keyPress(KeyEvent.VK_ESCAPE);//按下給定的鍵
                robot.keyRelease(KeyEvent.VK_ENTER);//釋放該鍵
//                robot.keyRelease(KeyEvent.VK_ESCAPE);//釋放該鍵
	}

}

2.1.2:Alert操作彈窗

public class AddGroup {
	
	//此處driver必須傳遞上一次的driver 順序執行
	public void addGroup(WebDriver driver) throws Exception{
		
		Thread.sleep(3000);
		//切放到第一個iframe
		driver.switchTo().frame("iframe_page");
		Thread.sleep(3000);
		//切換到第二個iframe
		driver.switchTo().frame("iframe_vehicle");
		//定位新增車組 進行選中
		driver.findElement(By.xpath(".//*[@id='div_tab']/div[1]/div[3]/ul/li[1]/a/span[1]")).click();
		
		driver.findElement(By.xpath(".//*[@id='form_group']/div[1]/div[1]/span/input[1]")).sendKeys("TEST");
		
		Thread.sleep(3000);
		
		driver.findElement(By.xpath(".//*[@id='div_tab']/div[2]/div[1]/div/div[2]/div[2]/div/a/span/span[1]")).click();
		
		Thread.sleep(3000);
		//相當於點選確定
		driver.switchTo().alert().accept();
		//相當於點選取消
//		driver.switchTo().alert().dismiss();
		//在對話方塊中輸入內容
//		driver.switchTo().alert().sendKeys("1234");
	}

}

3:視窗的切換

public class Test1 {
	private static WebDriver driver;

	public static void main(String[] args) throws Exception {  
        
		File pathToFirefoxBinary = new File("D:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe");
		FirefoxBinary firefoxbin = new FirefoxBinary(pathToFirefoxBinary);

		driver = new FirefoxDriver(firefoxbin, null); 
     
        driver.manage().window().maximize();  
       
        driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
          
        driver.get("https://www.jd.com/");  
       
        Thread.sleep(1000);
        
        //點選京東左側選單中的 手機
        WebElement phone_link = driver.findElement(By.linkText("手機"));
        phone_link.click();
        Thread.sleep(1000);
    
        // 獲取當前頁面控制代碼  
        String handle = driver.getWindowHandle();  
        //獲取所有頁面的控制代碼的集合
        Set<String> windowHandles = driver.getWindowHandles();
        // 獲取所有頁面的控制代碼,並迴圈判斷不是當前的控制代碼 
        for (String handles : windowHandles) {  
            if (handles.equals(handle)){ 
                continue;  
            }
            //切換到另外一個頁面
            driver.switchTo().window(handles);  
        }  
        
        WebElement xiaomi_link = driver.findElement(By.linkText("小米"));
        xiaomi_link.click();
        Thread.sleep(1000);
       
    }  
}

相關推薦

Selenium元素處理-滑鼠事件|處理|頁面切換

1:滑鼠相關操作1.1:滑鼠左擊public class testDemos { private FirefoxDriver driver; @Test public void testDemo() throws Exception{ driver =

Selenium處理

Selenium彈窗 Selenium遇到彈窗怎麽辦? Selenium彈窗處理 Selenium如何定位彈窗 Selenium的彈窗處理! 對話框相信大家都不陌生,常見的對話框為三種alert、confirm、prompt。這些對話框對Selenium來說不算是界面層的東西。因為他是JS做的

selenium+python自動化98--文件下載處理(PyKeyboard)

and time 操作方法 3.6 事件 技術分享 一個 inter blog 前言 在web自動化下載操作時,有時候會彈出下載框,這種下載框不屬於web的頁面,是沒辦法去定位的(有些同學一說到點擊,腦袋裏面就是定位!定位!定位!) 有時候我們並不是非要去定位到這個按鈕再去

selenium自動化之處理瀏覽器警告

  有的網站會彈出類似如下圖的警告彈窗,你會發現這種彈窗在html原始碼中怎麼也定位不到,接下來將介紹這種彈窗的處理方式。     其實這種彈窗是不屬於html的元素的,他是屬於瀏覽器自帶的彈窗,所以用定位元素的方法是定位不了的。   瀏覽器的警告彈窗一共有三種:

RobotFramework教程使用筆記——web自動化測試處理

switch lang web自動化 取消 使用 定義 www 普通 .cn 在web自動化測試中會遇到各種彈出框,在selenium中有對這些彈出框的處理。 彈出框一般有這麽幾類: 1、普通的彈出窗口,如果是可以定位的,直接定位到窗口,然後進行相

python+selenium三:滑鼠事件與鍵盤事件 python+selenium三:滑鼠事件與鍵盤事件

python+selenium三:滑鼠事件與鍵盤事件   # 1、滑鼠事件:# 每個模擬事件後需加.perform() 才會執行# context_click() 右擊# double_click() 雙擊# drag_and_drop(source, target) 拖動#

【2018.05.09】python3.6 + selenium 定位之 滑鼠事件操作+鍵盤事件操作

一、簡單操作     1.點選(滑鼠左鍵)頁面按鈕:click()     2.請空輸入框:clear()     3.輸入字串:send_keys()     4.submit()一

Selenium WebDriver 中滑鼠事件

滑鼠點選操作  滑鼠點選事件有以下幾種型別:  清單 1. 滑鼠左鍵點選   Actions action = new Actions(driver);action.click();// 滑鼠左鍵在當前停留的位置做單擊操作   action.click(driver.fin

Springboot下載功能,附件超過8K不能顯示下載頁面亂碼問題

strong oid map str 亂碼 ica req 大小 出現 Springboot項目中遇到一個文件下載問題,當文件大小超過8K時,不會出現彈出窗,而是直接在頁面顯示亂碼。 有問題的源碼如下: @RequestMapping(value = "/exportFi

小程式禁止頁面滾動

彈出 fixed 彈窗後,在彈窗上滑動會導致下層的頁面一起跟著滾動。 解決方法: 在彈出層加上 catchtouchmove 事件   示例程式碼: <view class="modal-view" hidden="{{!showModal}}" bindtap="toggleMod

RF之處理滑鼠懸停和alert事件

在selenium webdriver中有很多資料提到了處理滑鼠懸停事件和對彈窗的處理,robotframework webdriver中很少有這方面的資料,就我遇到的來做一個筆記,也好方法以後的同學去搜索查閱 比如百度首頁的設定選單,我們滑鼠放上去會顯示選單,但是這個地方

Python+Selenium練習篇之1-處理Alert整理

在自動化測試過程中,經常會遇到彈出警告框的情況,如圖所示:在 WebDriver 中處理 JavaScript 所生成的 alert、confirm 以及 prompt 是很簡單的。1.警告訊息框(alert)  警告訊息框提供了一個"確定"按鈕讓使用者關閉該訊息框,並且該訊息框是模式對話方塊,也就是說使用者

Selenium+Python瀏覽器下載處理

from selenium importwebdriver from time importsleep profile = webdriver.FirefoxProfile() profile.set_preference('browser.download.dir','d:\\') profile.se

selenium處理問題

前言:目前剛剛開始接觸selenium用於編寫web的自動化測試指令碼。在寫測試指令碼的過程中遇到彈窗的問題,所以記錄下來。 目的:處理JS彈窗問題 這種彈窗一般是對話方塊的形式。我們可以使用swi

cocos creator 學習: UI遮罩遮蔽觸發事件處理

所遇情況: 遊戲場景中,會設計很多的UI彈窗,當彈窗出現後,點選UI介面後卻觸發場景中的按鈕、觸控事件。 解決辦法:在UI上新增元件:BlockInputEvents 實圖: 新增元件——> 新增UI元件——> Block Input Events 注意

關於表單form元素中onsubmit事件處理機制的認識

讓我 clas 教程 是否 它的 默認方法 對象實例 action 事件處理機制   博主目前處於Js學習的初期,遇到了很多問題,比如今天的關於表單form元素中onsubmit事件問題,根據教程所述,onsubmit事件是在表單提交的時候觸發的,但是我看到教程上的onsu

Selenium2+Python自動化-處理瀏覽器(轉載)

term roc bsp tps nbsp driver fcm 輸入框 cep 我們在瀏覽網頁時經常會碰到各種花樣的彈窗,在做UI自動化測試的時候勢必要處理這些彈窗,這裏就介紹一下目前前端界兩種彈窗的處理方法。 1.alert彈窗 這種彈窗是最簡單的一種,Seleniu

【OpenGL】-009 GLUT中處理鍵盤滑鼠事件

【OpenGL】-009 GLUT中處理鍵盤滑鼠事件   鍵盤和滑鼠是GUI程式獲取使用者輸入的重要方式,在windows程式中,通過WM_KEY_DOWN/WM_KEY_UP/WM_LBUTTONDOWN/WM_RBUTTONDOWN等訊息的響應,使用者可以方便的處理鍵盤滑鼠的輸入。在

為同一個元素,新增相同名字的處理函式的不同繫結事件—通過switch語法

要點: 1.switch語法跟break語法結合使用,才能達到效果,滿足條件後,執行出路函式,然後跳出迴圈。 2.這裡的.type是返回的是事件的繫結型別,如click。區別與typeof 判斷的是值的型別,如 "undefined"。 程式碼: <!DOCTYPE html&

Selenium元素處理

1.加快Selenium爬取速度 控制css載入---  抓取過程僅僅抓取頁面內容,CSS樣式檔案是用來控制頁面外觀和元素房子位置的,對內容並沒有影響,可以限制             網頁載入CSS,從