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,從