<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      Selenium的基本api

      1、打開瀏覽器的驅動,以chrome為例

      from selenium import webdriver
      #chrome驅動
      driver =  webdriver.Chrome(executable_path="c:\\chromedriver")
      driver.get('http://www.baidu.com')
      driver.find_element_by_id("kw")  #返回一個頁面元素
      driver.find_element_by_id("kw").send_keys("光榮之路")

       

      2、瀏覽器最大化,前進和后退

      >>> driver.maximize_window()  #瀏覽器窗口最大化
      >>> driver.back() #瀏覽器后退
      >>> driver.forward() #瀏覽器前進

       3、強制刷新

      >>> driver.refresh()  #強制刷新頁面

      4、控制瀏覽器的位置:把瀏覽器放到固定的位置

      >>> driver.set_window_position(y=200, x=400)
      >>> position = driver.get_window_position()
      >>> position
      {'x': 400, 'y': 200}

       5、設置窗口大小

      >>> driver.set_window_size(width = 200, height = 400, windowHandle='current')
      >>> driver.get_window_size()
      {'width': 516, 'height': 400}

      6、獲取title,判斷在哪個頁面

      >>> driver.get("http://iciba.com")
      >>> driver.title
      '在線翻譯_在線詞典_金山詞霸_愛詞霸英語'

      7、獲取源碼

      >>> driver.get("http://iciba.com")
      >>> driver.page_source[:50]
      '<!DOCTYPE html><html xmlns="http://www.w3.org/1999'

      8、斷言源碼中的關鍵字

      >>> assert "英語" in driver.page_source  #源碼中存在
      >>> assert "英語1" in driver.page_source #源碼中不存在
      Traceback (most recent call last):
        File "<stdin>", line 1, in <module>
      AssertionError

      9、獲取當前url

      >>> driver.current_url

      10、句柄操作

      # 獲取當前窗口句柄
      now_handle = driver.current_window_handle

      # 獲取所有窗口句柄
      all_handles = self.driver.window_handles

      # 切換窗口
      self.driver.switch_to.window(handle)

       拿到句柄就像找到了窗口。

      切換句柄代碼舉例:

      #encoding=utf-8
      import unittest
      import time
      import chardet
      from selenium import webdriver
       
      class VisitSogouByIE(unittest.TestCase):
      
          def setUp(self):
              # 啟動chrome瀏覽器
              self.driver = webdriver.Chrome()
      
          def test_operateWindowHandle(self):
              url = "http://www.baidu.com"
              self.driver.get(url)
              # 獲取當前窗口句柄
              now_handle = self.driver.current_window_handle
              # 打印當前獲取的窗口句柄
              print (now_handle)
              # 百度搜索輸入框中輸入“selenium”
              self.driver.find_element_by_id("kw").send_keys("w3cschool")
              # 點擊搜索按鈕
              self.driver.find_element_by_id("su").click()
              # 導入time包
              import time
              # 等待3秒,以便網頁加載完成
              time.sleep(3)
              # 點擊w3school在線教育鏈接
              self.driver.find_element_by_xpath("//*[@id='2']/h3/a").click()
              time.sleep(5)
              # 獲取所有窗口句柄
              all_handles = self.driver.window_handles
              print(all_handles)
              # 循環遍歷所有窗口句柄
              for handle in all_handles:
                  self.driver.switch_to.window(handle)
                  #判斷源碼的關鍵字
                  print('*'*50)
                  print(self.driver.current_url)
                  print('*'*50)
                  if "百度熱榜" in self.driver.page_source:
                      time.sleep(5)
                      self.driver.find_element_by_xpath("//*[@id='5']/h3/a").click()
                      time.sleep(5)
                      self.driver.close()
                  elif "培訓和測試" in self.driver.page_source:
                     time.sleep(5)
                     self.driver.find_element_by_xpath('//*[@id="course"]/ul/li[5]/a').click()
                     time.sleep(5) 
      
          def tearDown(self):
              # 退出IE瀏覽器
              self.driver.quit()
      
      if __name__ == '__main__':
          unittest.main()
      View Code

       11、獲取頁面元素的基本信息

      driver.get("https://www.baidu.com")
      newsElement = driver.find_element_by_xpath("//*[text()='新聞']")
      print (u"元素的標簽名:", newsElement.tag_name)  #元素的標簽名: a
      print (u"元素的size:", newsElement.size)       #元素的size: {'height': 23, 'width': 26}
      print(u"元素的文本:",newsElement.text)          #元素的文本: 新聞
      print(u"元素的鏈接:",newsElement.get_attribute("href")) #元素的鏈接: http://news.baidu.com/

      12、判斷頁面元素是否顯示

      driver.get(url)
      div1 = driver.find_element_by_id("div1")
      print (div1.is_displayed()) #判斷是否見

      13、判斷元素是否可操作

      driver.get(url)
      input1 = self.driver.find_element_by_id("input1")
      print (input1.is_enabled())

      14、頁面元素的屬性

      driver.get(url)
      # 找到搜索輸入框元素
      searchBox = driver.find_element_by_id("query")
      # 獲取搜索輸入框頁面元素的name屬性值
      print (searchBox.get_attribute("name"))
      
      # 向搜索輸入框中輸入“測試工程師指定的輸入內容”內容
      searchBox.send_keys(u"測試工程師指定的輸入內容")
      # 獲取頁面搜索框的value屬性值(即搜索輸入框的文字內容)
      print (searchBox.get_attribute("value"))

      15、獲取css屬性值

      driver.get(url)
      searchBox = driver.find_element_by_id("kw")
      searchBox.value_of_css_property("height")
      searchBox.value_of_css_property("width")
      searchBox.value_of_css_property("font-family")

      16、清空輸入框

      driver.get(url)
      input = driver.find_element_by_id("kw")
      input.send_keys(u"測試開發招聘")
      input.clear() #清空輸入框

      17、單擊元素

      driver.get(url)
      button = driver.find_element_by_id("button")
      button.click() #模擬鼠標左鍵單擊操作

      18、雙擊元素

      from selenium.webdriver import ActionChains
      
      driver.get(url)
      inputBox = driver.find_element_by_id("inputBox") 
      action_chains = ActionChains(driver)
      action_chains.double_click(inputBox).perform() #固定用法

      19、操作下拉框

       方法1:

      driver.get(url)
      # 使用name屬性找到頁面上name屬性為“fruit”的下拉列表元素
      select = self.driver.find_element_by_name("fruit")
      all_options = select.find_elements_by_tag_name("option")
      for option in all_options:
          if option.text =="獼猴桃":
              option.click()

      方法2:

      driver.get(url)
      # 導入Select模塊
      from selenium.webdriver.support.ui import Select
      # 使用xpath定位方式獲取select頁面元素對象
      select_element = Select(driver.find_element_by_xpath("//select"))
      
      # 方法一:通過序號選擇第二個元素,序號從0開始
      select_element.select_by_index(1)
      
      # 方法二:通過選項的顯示文本選擇文本為“獼猴桃”選項
      select_element.select_by_visible_text("獼猴桃")
      
      # 方法三:通過選項的value屬性值選擇value=“shanzha”選項
      select_element.select_by_value("shanzha")

       

      20、斷言

       繼承unittest.TestCase,使用 assertListEqual()

       

      21、操作多選框

      driver.get(url)
      # 導入Select模塊
      from selenium.webdriver.support.ui import Select
      # 使用xpath定位方式獲取select頁面元素對象
      select_element = Select(driver.find_element_by_xpath("//select"))
      
      #選中
      # 通過序號選擇第一個元素
      select_element.select_by_index(0)
      # 通過選項的文本選擇“山楂”選項
      select_element.select_by_visible_text("山楂")
      # 通過選項的value屬性值選擇value=“mihoutao”的選項
      select_element.select_by_value("mihoutao")
      
      #取消選中
      # 通過選項文本取消已選中的文本為“荔枝”選項
      select_element.deselect_by_visible_text("荔枝")
      # 通過序號取消已選中的序號為1的選項
      select_element.deselect_by_index(1)
      # 通過選項的value屬性值取消已選中的value=“juzi”的選項
      select_element.deselect_by_value("juzi")

       

      22、操作單選框

      driver.get(url)
      # 使用xpath定位獲取value屬性值為'berry'的input元素對象,也就是“草莓”選項
      berryRadio = driver.find_element_by_xpath("//input[@value='berry']")
      # 點擊選擇“草莓”選項
      berryRadio.click()
      
      # 斷言“草莓”復選框被成功選中
      assertTrue(berryRadio.is_selected(), u"草莓復選框未被選中!")

      23、操作復選框:同上

      24、截圖

      driver.get_screenshot_as_file(filename)

      25、拖拽元素

      initialPosition = driver.find_element_by_id("draggable")
      targetPosition = driver.find_element_by_id("draggable2")
      from selenium.webdriver import ActionChains
      action_chains = ActionChains(driver)
      # 將頁面上第一個能被拖拽的元素拖拽到第二個元素位置
      action_chains.drag_and_drop(initialPosition, targetPosition).perform()

      26、鍵盤操作

      #encoding=utf-8
      import unittest
      import time
      import chardet
      from selenium import webdriver
       
      class VisitSogouByIE(unittest.TestCase):
      
          def setUp(self):
              self.driver = webdriver.Chrome()
              
          def test_simulateASingleKeys(self):
              url = "http://www.baidu.com"
              self.driver.get(url)
              # 導入模擬按鍵模塊Keys
              from selenium.webdriver.common.keys import Keys
             
              # 輸入框輸入內容
              self.driver.find_element_by_id("kw").send_keys("seleniumm")
              time.sleep(5)
              
      #通過WebDriver實例發送一個F12鍵 self.driver.find_element_by_id(
      "kw").send_keys(Keys.F12) time.sleep(5)
      # 刪除多輸入的一個 m self.driver.find_element_by_id(
      "kw").send_keys(Keys.BACK_SPACE) time.sleep(10) # 輸入空格鍵+“教程” self.driver.find_element_by_id("kw").send_keys(Keys.SPACE) self.driver.find_element_by_id("kw").send_keys("教程") time.sleep(10) # ctrl+a 全選輸入框內容 self.driver.find_element_by_id("kw").send_keys(Keys.CONTROL, 'a') time.sleep(10) # ctrl+x 剪切輸入框內容 self.driver.find_element_by_id("kw").send_keys(Keys.CONTROL, 'x') time.sleep(10) # ctrl+v 粘貼內容到輸入框 self.driver.find_element_by_id("kw").send_keys(Keys.CONTROL, 'v') time.sleep(10) # 通過回車鍵來代替單擊操作 self.driver.find_element_by_id("su").send_keys(Keys.ENTER) time.sleep(10) def tearDown(self): self.driver.quit() if __name__ == '__main__': unittest.main()

       27、鼠標右鍵

      #鼠標右鍵
      #encoding=utf-8
      import unittest
      import time
      from selenium import webdriver
      from selenium.webdriver import ActionChains
      import win32clipboard as w
      import win32con
      
      # 設置剪切板內容
      def setText(aString):
          w.OpenClipboard()
          w.EmptyClipboard()
          w.SetClipboardData(win32con.CF_UNICODETEXT, aString)
          w.CloseClipboard()
      
      
      class VisitSogouByIE(unittest.TestCase):
      
          def setUp(self):
              self.driver = webdriver.Chrome()
      
          def test_rigthClickMouse(self):
              url = "http://www.sogou.com"
              # 訪問搜狗首頁
              self.driver.get(url)
              # 找到搜索輸入框
              searchBox = self.driver.find_element_by_id("query")
              # 將焦點切換到搜索輸入框
              searchBox.click()
              time.sleep(2)
              # 在搜索輸入框上執行一個鼠標右鍵點擊操作
              ActionChains(self.driver).context_click(searchBox).perform()
              # 將“gloryroad”數據設置到剪切板中,相當于執行了復制操作
              setText(u'gloryroad')
              time.sleep(4)
              # 發送一個粘貼命令,字符p指代粘貼操作
              ActionChains(self.driver).send_keys('P').perform()
              # 點擊搜索按鈕
              self.driver.find_element_by_id('stb').click()
              time.sleep(10)
      
          def tearDown(self):
              # 退出IE瀏覽器
              self.driver.quit()
      
      if __name__ == '__main__':
          unittest.main()

       28、模擬鼠標左鍵和釋放

      from selenium.webdriver import ActionChains
      
      driver.get(url)
      div = driver.find_element_by_id("div1")
      
      # 在id屬性值為“div1”的元素上執行按下鼠標左鍵,并保持
      ActionChains(driver).click_and_hold(div).perform()
      
      # 在id屬性值為“div1”的元素上釋放一直釋放的鼠標左鍵
      ActionChains(driver).release(div).perform()

      29、鼠標懸浮

      from selenium.webdriver import ActionChains
      
      driver.get(url)
      # 找到頁面上的鏈接元素
      link = driver.find_element_by_partial_link_text(u"指過來")
      # 找到頁面上的p元素
      p = driver.find_element_by_xpath("//p")
      
      # 將鼠標懸浮到第一個鏈接元素上
      ActionChains(driver).move_to_element(link).perform()
      
      # 將鼠標從第一個鏈接元素移動到p元素上
      ActionChains(driver).move_to_element(p).perform()

      30、判斷頁面元素是否存在

      driver.find_element(by, value)
      
      # 判斷頁面元素id屬性值為“query”的頁面元素是否存在
      
      driver.find_element("id", "query")
      driver.find_element("xpath", "http://input[@id='query']")

      31、設置隱式等待

      driver.implicitly_wait(10)

      32、設置顯式等待

      from selenium.webdriver.support.ui import WebDriverWait
      from selenium.webdriver.support import expected_conditions
      
      driver = webdriver.Chrome()
      driver.get("http://www.sogou.com")
      input_box=driver.find_element_by_id("query")
      
      #等待10s,每200毫秒重試一次
      wait = WebDriverWait(driver, 10, 0.2)
      # 每200ms判斷一次是否元素可見
      wait.until(expected_conditions.visibility_of(input_box))

      33、切入切出frame

      #1 使用索引方式進入指定的frame頁面,索引號從0開始。
      driver.switch_to.frame(0)
      
      #2 通過標簽名找到頁面中所有的frame元素,然后通過索引進入該frame
      driver.switch_to.frame(driver.find_elements_by_tag_name("frame")[1])
      
      #3 通過id進入frame
      driver.switch_to.frame(driver.find_element_by_id("rightframe"))
      #4 退出frame
      driver.switch_to.default_content()

      33、指定頁面的加載時間

      driver.set_page_load_timeout(4)

      34、操作alert框

      # 獲取alert對象
      alert = driver.switch_to.alert
      
      # 使用alert.text屬性獲取alert框中的內容,并斷言文字內容
      assertAlmostEqual(alert.text, u"這是一個 alert 彈出框")
      
      # 調用alert對象的accept()方法,模擬鼠標單擊alert彈窗上的“確定”按鈕,以便關閉alert窗
      alert.accept()
      
      # 取消按鈕,模擬單擊confirm框上的“取消”按鈕
      alert.dismiss()  

      35、獲取cookie

      #得到當前頁面下所有的Cookies
      driver.get_cookies()
      #根據Cookie的name值獲取該條Cookie信息
      driver.get_cookie("SUV")
      
      # 刪除cookie有2種方法
      # 第一種:通過Cookie的name屬性,刪除name值為“ABTEST”的Cookie信息
      driver.delete_cookie("ABTEST")
      # 第二種:一次性刪除全部Cookie信息
      driver.delete_all_cookies()
      
      # 添加自定義Cookie信息
      driver.add_cookie({"name": "gloryroadTrain", 'value': '1479697159269020'})

       36、鍵盤的上下左右操作

      driver.get("http://baidu.com")
      搜索:element=driver.find_element_by_name("wd")
      導入Keys:
      from selenium.webdriver.common.keys import Keys
      回車:element.send_keys(Keys.ENTER)
      清理:element.clear()
      上:element.send_keys(Keys.ARROW_UP)
      下:element.send_keys(Keys.ARROW_DOWN)
      左:element.send_keys(Keys.ARROW_LEFT)
      右:element.send_keys(Keys.ARROW_RIGHT)

       

      posted @ 2020-11-10 20:36  hqq的進階日記  閱讀(188)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 国产亚洲精品日韩av在| 亚洲欧美在线一区中文字幕| 亚洲欧美日韩综合久久久| 黑人玩弄人妻中文在线| 免费99精品国产人妻自在现线| 河源市| 色综合久久天天综线观看| 亚洲成色精品一二三区| 日本黄页网站免费大全| 中文字幕乱码人妻综合二区三区| 欧美大屁股xxxx高跟欧美黑人| 亚洲精品国产av成人网| av一区二区中文字幕| 色狠狠色噜噜AV一区| 粉嫩国产av一区二区三区| 波多野结衣高清一区二区三区| 国产偷自视频区视频| 亚洲区成人综合一区二区| 色伦专区97中文字幕| 中文字幕日韩精品有码| 国产成人免费永久在线平台| 国产微拍一区二区三区四区| 亚洲人成网站观看在线观看| 欧美高清狂热视频60一70| 一本色道久久—综合亚洲| 亚洲一区二区在线无码| 国产精品香港三级国产av| 后入内射无码人妻一区| 精品国产精品午夜福利| 亚洲国产成人久久77| 国产精品美女自慰喷水| 国产寡妇偷人在线观看| 精品欧美一区二区三区久久久| 久久精品一本到99热免费| 国产在线观看网址不卡一区 | 国产另类ts人妖一区二区| 久久这里都是精品一区| 欲乱人妻少妇邻居毛片| 国产三级精品三级在线区| av中文无码乱人伦在线观看| 亚洲精品乱码免费精品乱|