nodejs爬蟲selenium
阿新 • • 發佈:2017-11-02
爬蟲 popu sub frame切換 cli let 完成 list value
6、元素操作
查找元素 使用操作如何找到頁面元素Webdriver的findElement方法可以用來找到頁面的某個元素,最常用的方法是用id和name查找。下面介紹幾種比較常用的方法。 By ID假設頁面寫成這樣: <input type=”text” name=”userName” id=”user” /> 那麽可以這樣找到頁面的元素: 通過id查找: WebElement element = driver.findElement(By.id(“user”)); By Name或通過name查找: WebElement element = driver.findElement(By.name(“userName”)); By XPATH或通過xpath查找: WebElement element =driver.findElement(By.xpath(“//input[@id=‘user‘]“)); By Class Name假設頁面寫成這樣: <div class=”top”><span>Head</span></div><divclass=”top”><span>HeadName</span></div> 可以通過這樣查找頁面元素: List<WebElement>top= driver.findElements(By.className(“top”)); By Link Text假設頁面元素寫成這樣: <a href=”http://www.baidu.com”>baidu</a>> 那麽可以通過這樣查找: WebElement baidu=driver.findElement(By.linkText(“baidu”));
輸入框傳值 輸入框(text field or textarea) 找到輸入框元素: WebElement element = driver.findElement(By.id(“passwd-id”)); 在輸入框中輸入內容: element.sendKeys(“test”); 將輸入框清空: element.clear(); 獲取輸入框的文本內容: element.getText();
下拉菜單 下拉選擇框(Select)找到下拉選擇框的元素: Select select = new Select(driver.findElement(By.id(“select”))); 選擇對應的選擇項:select.selectByVisibleText(“testName”); 或 select.selectByValue(“name”); 不選擇對應的選擇項: select.deselectAll(); select.deselectByValue(“name”); select.deselectByVisibleText(“姓名”); 或者獲取選擇項的值: select.getAllSelectedOptions(); select.getFirstSelectedOption();
單選框 單選項(Radio Button)找到單選框元素: WebElement sex=driver.findElement(By.id(“sex”)); 選擇某個單選項: sex.click(); 清空某個單選項: sex.clear(); 判斷某個單選項是否已經被選擇: sex.isSelected();
復選框 多選項(checkbox)多選項的操作和單選的差不多: WebElement area =driver.findElement(By.id(“area .”)); area .click(); area .clear(); area .isSelected(); area .isEnabled();
彈出框 彈出對話框(Popup dialogs)Alert alert = driver.switchTo().alert(); alert.accept(); alert.dismiss(); alert.getText();
表單提交 表單(Form)Form中的元素的操作和其它的元素操作一樣,對元素操作完成後對表單的提交可以: WebElement sub= driver.findElement(By.id(“sub”)); sub.click(); 或 sub.submit();//只適合於表單的提交
多窗口切換 Windows 或 Frames之間的切換 首先切換到默認的frame driver.switchTo().defaultContent(); 切換到某個frame: driver.switchTo().frame(“leftFrame”); 從一個frame切換到另一個frame: driver.switchTo().frame(“mainFrame”); 切換到某個window: driver.switchTo().window(“windowName”);
nodejs爬蟲selenium