獲取這個元素的方法:element=driver.find_element_by_id("passwd-id")element=driver.find_ele" />

欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

Python爬蟲之selenium高級功能

系統 1621 0

Python爬蟲之selenium高級功能

?

原文地址

表單操作

元素拖拽

頁面切換

彈窗處理

?

?

表單操作

表單里面會有文本框、密碼框、下拉框、登陸框等。

這些涉及與頁面的交互,比如輸入、刪除、點擊等。

前提是找到頁面中的元素。

例如下面有一個表單輸入框:

            
            "
            
              text
            
            
              "
            
             name=
            
              "
            
            
              passwd
            
            
              "
            
             id=
            
              "
            
            
              passwd-id
            
            
              "
            
             />
          

獲取這個元素的方法:

            element = driver.find_element_by_id(
            
              "
            
            
              passwd-id
            
            
              "
            
            
              )
element 
            
            = driver.find_element_by_name(
            
              "
            
            
              passwd
            
            
              "
            
            
              )
element 
            
            = driver.find_elements_by_tag_name(
            
              "
            
            
              input
            
            
              "
            
            
              )
element 
            
            = driver.find_element_by_xpath(
            
              "
            
            
              //input[@id='passwd-id']
            
            
              "
            
            )
          

注意:使用 xpath 的時候還需要注意的是,如果有多個元素匹配了 xpath,它只會返回第一個匹配的元素。如果沒有找到,那么會拋出? NoSuchElementException ?的異常。

?

獲取元素之和就要進行輸入與點擊操作了

輸入:

            element.send_keys(
            
              "
            
            
              some text
            
            
              "
            
            )
          

點擊:

利用 Keys 這個類來模擬點擊某個按鍵,當然首先你要獲取按鍵元素。

            element.send_keys(
            
              "
            
            
              and some
            
            
              "
            
            , Keys.ARROW_DOWN)
          

第二種方法:我們獲取了按鍵元素,我們就可以使用click方法點擊了

            button = broswer.find_element_by_class_name(
            
              '
            
            
              btn-search
            
            
              '
            
            
              )

            
            
              #
            
            
              點擊按鈕
            
            
button.click() 
          

刪除:

當你元素使用send.keys方法輸入字符后,輸入的內容不會自動清除,如果我們要輸入第二次,就要把第一次的內容刪除掉:

            element.clear()
          

?

上面都是簡單的操作,如果我們遇到下拉框應該怎么辦呢

?WebDriver 中提供了一個叫 Select 的方法,可以幫助我們完成這些事情。

可以根據索引來選擇,可以根據值來選擇,可以根據文字來選擇。

            
              from
            
             selenium.webdriver.support.ui 
            
              import
            
            
               Select
select 
            
            = Select(driver.find_element_by_name(
            
              '
            
            
              name
            
            
              '
            
            
              ))
select.select_by_index(index)
select.select_by_visible_text(
            
            
              "
            
            
              text
            
            
              "
            
            
              )
select.select_by_value(value)
            
          

?

取消全部選擇:

            select = Select(driver.find_element_by_id(
            
              '
            
            
              id
            
            
              '
            
            
              ))
select.deselect_all()
            
          

獲取已選選擇:

            select = Select(driver.find_element_by_xpath(
            
              "
            
            
              xpath
            
            
              "
            
            
              ))
all_selected_options 
            
            = select.all_selected_options
          

獲取可選選項:

            options = select.options
          

?

最后提交表單:

            driver.find_element_by_id(
            
              "
            
            
              submit
            
            
              "
            
            ).click()
          

注意:WebDriver 會在表單中尋找它所在的表單,如果發現這個元素并沒有被表單所包圍,那么程序會拋出? NoSuchElementException ?的異常。

?

?

元素拖拽

要完成元素的拖拽,首先你需要指定被拖動的元素和拖動目標元素,然后利用 ActionChains 類來實現。

            element = driver.find_element_by_name(
            
              "
            
            
              source
            
            
              "
            
            
              )
target 
            
            = driver.find_element_by_name(
            
              "
            
            
              target
            
            
              "
            
            
              )


            
            
              from
            
             selenium.webdriver 
            
              import
            
            
               ActionChains
action_chains 
            
            =
            
               ActionChains(driver)
action_chains.drag_and_drop(element, target).perform()
            
          

這樣就實現了元素從 source 拖動到 target 的操作。

?

?

頁面切換

一個瀏覽器肯定會有很多窗口,所以我們肯定要有方法來實現窗口的切換。切換窗口的方法如下:

            driver.switch_to_window(
            
              "
            
            
              windowName
            
            
              "
            
            )
          

另外你可以使用 window_handles 方法來獲取每個窗口的操作對象。例如:

            
              for
            
             handle 
            
              in
            
            
               driver.window_handles:
    driver.switch_to_window(handle)
            
          

另外切換 frame 的方法如下

            driver.switch_to_frame(
            
              "
            
            
              frameName.0.child
            
            
              "
            
            )
          

這樣焦點會切換到一個 name 為 child 的 frame 上。

?

彈窗處理

當你出發了某個事件之后,頁面出現了彈窗提示,那么你怎樣來處理這個提示或者獲取提示信息呢?

            alert = driver.switch_to_alert()
          

通過上述方法可以獲取彈窗對象。

?


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 国产野花视频天堂视频免费 | 国产日韩欧美中文字幕 | 嫩草影院国产 | 亚洲视频免费 | 国产成人精品一区二区三在线观看 | 比比资源先锋影音网 | 久草亚洲视频 | 国产精品日日摸夜夜添夜夜av | 91久久久久久久久 | 一级黄色片a | 日韩一区免费在线观看 | 成人免费看黄网站无遮挡 | 成人嗯啊视频在线观看 | 国产精品三级a三级三级午夜 | 成人片网址 | 国产精品成人不卡在线观看 | 色综合网站在线 | 亚洲综合在线一区 | 日本精品中文字幕有码 | 超碰97人 | 抱着cao才爽免费观看 | 日本精品a在线观看 | 小优视频为爱而生懂你更多茄子 | 婷婷六月综合网 | 91精品欧美一区二区三区 | 91精品久久久久久久久网影视 | 一起射综合网 | 日韩成人在线视频 | 久久成人一区二区 | 国产成人精品一区二区三区视频 | 日本又黄又粗暴的gif动态图含羞 | 日韩中文一区 | 91麻豆国产极品在线观看洋子 | 欧美精品激情 | 日本VA在线视频播放 | 国产丝袜在线 | 欧美成人精品一区二区三区 | 免费视频91| 亚洲午夜精品久久久久久成年 | 奇米视频888 | 亚洲精品一区二区三区99 |