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

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                [TOC] 前言 元素定位有八種方法,這個能看到這一篇的小伙伴都知道了,那么有沒有一種方法,可以把八種定位合為一種呢?也就是把定位的方式參數化,如id,name.css等設置為一個參數,這樣只需維護定位方式的參數就行了。 小編曾經自己封裝過這種方法,最后定位方法寫成這樣:find\_element("id=kw"),find\_element("css=#kw"),這個思路是來源于RF框架里面的,等號前面是定位方法,等號后面是元素名稱。 <br /> ## 一、find_element() 1. selenium元素定位里面其實是有這個方法的,只是大部分時候都是結合By方法使用,如下圖 ![](https://images2015.cnblogs.com/blog/1070438/201703/1070438-20170314222819026-1734855904.png) <br /> ## 二、查看find_element方法源碼 1. find_element跟find_element_by_xxx到底有什么區別呢?好奇害死貓啊,找到這個路徑:`Lib\site-packages\selenium\webdriver\remote\utils.py` 2. 打開文件夾后發現,其實定find_element_by_xxx的方法都是返回的find_element方法,也就是說那八個定位方法其實就是八個小分支。 <br /> ## 三、By定位方法 1. 找到這個路徑:Lib\site-packages\selenium\webdriver\common\by.py 2. 打開by這個模塊,其實里面很簡單啊,就是幾個字符串參數。 3. 那么問題就簡單了,其實壓根可以不用繞這么大彎路去導入這個模塊啊,說實話,我一點都不喜歡去導入這個By,總覺得太繁瑣。 ``` ''' The By implementation. ''' class By(object): """ Set of supported locator strategies. """ ID = "id" XPATH = "xpath" LINK_TEXT = "link text" PARTIAL_LINK_TEXT = "partial link text" NAME = "name" TAG_NAME = "tag name" CLASS_NAME = "class name" CSS_SELECTOR = "css selector" ``` <br /> ## 四、定位參數化 1. 小編一直追求簡單粗暴的方式,接下來就用最簡單的方法去定位 2. 總結下幾種定位方法(字符串中間是空格需注意) ``` by_id= "id" by_xpath = "xpath" by_link_text = "link text" by_partial_text = "partial link text" by_name = "name" by_tag_name = "tag name" by_class_name = "class name" by_css_selector = "css selector" ``` ![Snipaste_2020-08-21_13-57-25.png](https://i.loli.net/2020/08/21/na7fgoOApyBc48D.png) <br /> ## 五、參考代碼 ``` # coding:utf-8 from selenium import webdriver from selenium.webdriver.common.by import By driver = webdriver.Chrome() driver.get("http://www.baidu.com") driver.find_element("id","kw").send_keys("zjut") driver.find_element('css selector', "#su").click() # 其他定位參考 t1 = driver.find_element("link text", "地圖").text print(t1) ```
                  <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>

                              哎呀哎呀视频在线观看