<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                [TOC] ## **一、元素定位方法** **1.1 tag_name(了解)** 說明:是通過元素的標簽名稱來定位,標簽名(查看元素時尖括號(<)緊挨著的單詞或字母就是標簽名) (標簽名也就是元素名) 方法:driver.find_element_by_tag_name("標簽名") 注意: 1. 如果頁面中存在多個相同標簽,默認返回第一個標簽元素。 **案例:** ~~~ ''' 需求: ? 1.使用 tag name定位方式,使用注冊A.html頁面,用戶名輸入admin 方法: ? 1. driver.find_element_by_tag_name("")#定位元素方法 ? 2. send_keys()#輸入方法 ? 3. driver.quit()#退出方法 ''' ? from selenium import webdriver from time import sleep ? driver = webdriver.Chrome() driver.get("D:\web自動化素材\課堂素材\注冊A.html") ? # 注意:頁面中如果存在多個相同的標簽名,默認返回第一個標簽 driver.find_element_by_tag_name("input").send_keys("admin") ? sleep(3) driver.quit() ~~~ <br /> **1.2 link_text** 說明:定位超鏈接標簽 方法:driver.find_element_by_link_text() 注意: 1. link_text:只能使用精準匹配(a標簽的全部文本內容) **案例:** ~~~ ''' 需求: ? 1.使用 link_text定位方式,使用注冊A.html頁面,點擊訪問 新浪 網站 鏈接 方法: ? 1.driver.find_element_by_link_text("") #定位元素方法 ? 2.cLick() #點擊方法 注意: ? link_text: ? ? ? 1.只能定位a標簽 ? ? ? 2.link_text必須為全部匹配 ''' ? from selenium import webdriver from time import sleep ? driver = webdriver.Chrome() driver.get("D:\web自動化素材\課堂素材\注冊A.html") ? # 使用 link_text定位 訪問 新浪 網站<全部匹配> driver.find_element_by_link_text("訪問 新浪 網站").click() ? sleep(3) driver.quit() ~~~ <br /> **1.3 partial_link_text【推薦】** 說明:定位超鏈接標簽 方法:driver.find\_element\_by\_partial\_link\_text() 注意: 1. 可以使用精準或模糊匹配,如果使用模糊匹配最好使用能代表唯一的關鍵詞 2. 如果有多個值,默認返回第一個值 **案例:** ~~~ ''' 需求: ? 1.使用 link_text定位方式,使用注冊A.html頁面,點擊訪問 新浪 網站 鏈接 方法: ? 1. driver.find_element_by_link_text("") #定位元素方法 ? 2. cLick() #點擊方法 注意: ? partial_link_text: ? ? ? 1.只能定位a標簽 ? ? ? 2. partial_link_text定位元素的內容可以模糊部分值,但是必須能代表唯一性 ''' ? from selenium import webdriver from time import sleep ? driver = webdriver.Chrome() driver.get("D:\web自動化素材\課堂素材\注冊A.html") ? # 使用 partial_link_text定位 使用模糊 唯一代表關鍵詞 driver.find_element_by_partial_link_text("訪問").click() ? # 沒有使用唯一代表詞 默認操作符合條件的第一個元素 driver.find_element_by_partial_link_text("新浪").click() ? # 使用全部匹配 driver.find_element_by_partial_link_text("訪問 新浪 網站").click() ? sleep(3) driver.quit() ~~~ <br /> ## **二、Xpath 和css定位** ### 2.1 為什么使用xpath和css定位? 1. id, name, class:依賴于元素這三個對應的屬性,如果元素沒有以上三個屬性,定位方法不能使用。 2. link_text, partial_link_text:只適合超鏈接 3. tag_name:只能找頁面唯一元素,或者頁面中多個相同元素中的第一個元素 ### 2.2 什么是xpath定位? 說明:基于元素的路徑 ### 2.3 xpath介紹 1. xpath是XML Path簡稱: (xml是一種標記語言,焦點:數據存儲于傳遞(配置文件)后綴.XML) ### 2.4 Xpath常用的定位策略: ``` 1. 路徑 1).絕對路徑: 語法:以單斜杠開頭逐級開始編寫,不能跳級。如:/html/body/div/p\[1\]/input 2).相對路徑 語法:以雙斜杠開頭,雙斜杠后邊跟元素名稱,不知元素名稱可以使用\*代替。 如://input //* 2.路徑結合屬性 語法:在xpath中,所有的屬性必須使用@符號修飾如://*[@id='id值'] 3.路徑結合邏輯(多個屬性) 語法://*[@id="id值" and @屬性='屬性值'] 4.路徑結合層級 語法://*[@id='父級id屬性值']/input 提示: 1.一般見識使用指定標簽名稱,不使用\*代替,效率比較慢。 2.無論是絕對路徑和相對路徑,/后面必須為元素的名稱或者\* 3.擴展:在工作中,如果能使用相對路徑絕對不使用絕對路徑。 ``` ### 2.5 Xpath擴展 ``` 1. //*[text()='XXX'] # 定位文本值等于xxx的元素 提示:一般適合p標簽,a標簽 2. //*[contains(@屬性,'xxx')] # 定位屬性包含xxx的元素 提示:contains為關鍵字,不可更改。 3. //*[starts-with(@屬性, 'xxx')] # 定位屬性以xxx開頭的元素 提示:starts-with為關鍵字不可更改 ``` **案例:** ~~~ ''' 需求: ? 1.使用絕對路徑定位 用戶名 輸入 admin ? 2.暫停2秒鐘 ? 3.使用相對路徑定位 密碼框 輸入 123 方法: ? driver.find_element_by_xpath() ''' from selenium import webdriver from time import sleep ? driver = webdriver.Chrome() driver.get("D:\web自動化素材\課堂素材\注冊A.html") ? # 使用絕對路徑定位 用戶名 admin driver.find_element_by_xpath("/html/body/form/div/fieldset/p[1]/input").send_keys("admin") ? # 使用層級結合屬性 定位用戶名 driver.find_element_by_xpath("//p[@id='p1']/input").send_keys("admin") ? sleep(2) ? # 使用相對路徑 定位 密碼 123 # driver.find_element_by_xpath("//input[@id='passwordA']").send_keys("123") ? # 使用邏輯結合 driver.find_element_by_xpath("//input[@id='passwordA' and @placeholder='密碼A']").send_keys("123") ? sleep(3) driver.quit() ~~~ <br /> ## **三、css定位** **說明:** 1. css一種標記語言,焦點:數據的樣式。控制元素的顯示樣式,就必須先找到元素,在css標記語言中找元素使用css選擇器; 2. css定位就是通過css選擇器工具進行定位; 3. 極力推薦使用,查找元素的效率比xpath高,語法比xpath更簡單。 ``` 方法: driver.find_element_by_css_selector() 常用策略: 1. id選接器 前提:元素是必須有id屬性 語法:#id 如:#passwordA 2. class 選擇器 前提:元素是必須有class屬性 語法:.class 如:.telA 3. 元素選擇器 語法:element 如:input 4. 屬性選擇器 語法:[屬性名=屬性值] 5. 層級選擇器 語法: 1. p>input 2. p input 提示:>與空格的區別,大于號必須為子元素,空格則不用。 ``` **案例:** ``` ''' 需求: 1.使用 css id選擇器 定位 用戶名 輸入 admin 2.使用css屬性選擇 定位 密碼框 輸入123456 3.使用 css class選擇器 定位電話號碼:18611112222 4.使用css元素選擇器 定位span標簽獲取文本值 5.使用層級選擇器 定位email 輸入1230qq.com 方法: driver.find_element_by_css_selector() ''' from selenium import webdriver from time import sleep driver = webdriver.Chrome() driver.get("D:\web自動化素材\課堂素材\注冊A.html") # 1.使用 css id選擇器 定位 用戶名 輸入 admin driver.find_element_by_css_selector("#userA").send_keys("admin") # 2.使用css屬性選擇 定位 密碼框 輸入123456 driver.find_element_by_css_selector("[name='passwordA']").send_keys("123456") # 3.使用 css class選擇器 定位電話號碼:18611112222 driver.find_element_by_css_selector(".telA").send_keys("18611112222") # 4.使用css元素選擇器 定位span標簽獲取文本值 span = driver.find_element_by_css_selector("span").text print("獲取的span標簽文本值:", span) # 5.使用層級選擇器 定位email 輸入1230qq.com driver.find_element_by_css_selector("@placeholder='電子郵箱A'").send_keys("輸入1230qq.com") sleep(3) driver.quit() ``` **擴展:** ``` 1. [屬性^= '開頭的字母'] # 獲取指定屬性以指定字母開頭的元素 2. [屬性s= '結束的字母'] # 獲取指定屬性以指定字母結束的元素 3. [屬性*= '包含的字母'] # 獲取指定屬性包含指定字母的元素 ``` **案例**: ~~~ ''' ? 需求: ? ? ? 1.使用 css_id選擇器 定位 用戶名 輸入 admin ? ? ? 2.使用css屬性選擇 定位 密碼框 輸入123456 ? ? ? 3.使用 css_class選擇器 定位電話號碼:18611112222 ? ? ? 4.使用css元素選擇器 定位span標簽獲取文本值 ? ? ? 5.使用層級選擇器 定位email 輸入1230qq.com ? 方法: ? ? ? driver.find_element_by_css_selector() ''' from selenium import webdriver from time import sleep ? driver = webdriver.Chrome() driver.get("D:\web自動化素材\課堂素材\注冊A.html") ? # 1.使用 css id選擇器 定位 用戶名 輸入 admin 以指定字母開頭 語法:[屬性^= '開頭的字母'] driver.find_element_by_css_selector("[name^='us']").send_keys("admin") # 2.使用css屬性選擇 定位 密碼框 輸入123456 以指定字母結束 語法:[屬性s= '結束的字母'] driver.find_element_by_css_selector("[name$='dA']").send_keys("123456") # 3.使用 css class選擇器 定位電話號碼:18611112222 包含指定字母 語法:[屬性*= '包含的字母'] driver.find_element_by_css_selector([class*='el']").send_keys("18611112222") # 4.使用css元素選擇器 定位span標簽獲取文本值 span = driver.find_element_by_css_selector("span").text print("獲取的span標簽文本值:", span) # 5.使用層級選擇器 定位email 輸入1230qq.com driver.find_element_by_css_selector("@placeholder='電子郵箱A'").send_keys("輸入1230qq.com") ? ? sleep(3) driver.quit() ~~~ **Xpath與CSS類比功能:** ``` 復制xpath:/html/body/form/div/fieldset/p[1]/input 復制最簡://*[@id="userA"] 復制CSS路徑:html body form div #zc fieldset p#p1 input#userA ``` **提示:** 1. 雖然借助工具可以快速生成xpath路徑和css語法,但是前期不建議使用。 2. 工具在智能,沒有人智能。 <br /> ## **四、定位一組元素** ``` 方法:driver.find_elements_by_xxx() 返回結果:類型為列表,要對列表進行訪問和操作必須指定下標或進行遍歷,[下標從0開始] ``` <br /> ## **五、擴展8種元素定位的底層實現** ``` 方式:driver.find_element(By.xxx, 'value') 參數說明: By.xxx:為By類的類型 如:By.ID value:元素的定位值 如:"userA" By類:需要導包 位置:from selenium.webdriver.common.by import By ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看