做web自動化,之前我們已經將環境搭建好了,現在的話總結下怎么定位元素的
最基本的元素定位是有6種:
driver.find_element_by_id("") driver.find_element_by_class_name("") driver.find_element_by_link_text("") driver.find_element_by_partial_link_text("") driver.find_element_by_name("") driver.find_element_by_tag_name("")
以上這6中方式一般在做web自動化項目的時候我們用的還是比較少的,常用的還是xpath和css,css目前我沒有去研究學習,這里我總結下xpath是怎么用的吧
在瀏覽器重一般自帶的功能可以讓你直接復制xpath,但是這種方式小打小鬧還可以,真正做項目也沒有誰會去復制xpath,都是靠自己手動去寫的,那么怎么取自己手寫xpath呢?
下面介紹幾種方式來手寫:
1、//標簽名[@屬性名=值]
定位百度首頁中的輸入框:
2、通過部分屬性值來匹配
//標簽名[contains(@屬性名,值)]
3、利用文本
文本全部匹配://標簽名[text()=值]
文本部分匹配://標簽名[contains(text(),值)]
4、軸定位
相對於以上3中方式,軸定位是比較復雜的了,一般用以上3中還是定位不了,我們就會采用軸定位的方式了
先介紹下軸定位的語法:
軸名稱::節點名稱
軸名稱常用的有以下:
ancestor:祖先節點,包括父節點
parent:父節點
preceding:當前節點標簽之前的所有節點
prececing-sibling:當前節點前的所有兄弟節點(同級)
following:當前節點標簽之后的所有節點
following-sibling:當前節點標簽之后的所有兄弟節點(同級)
舉個栗子吧:課堂派中的注冊框中的已有賬號用其他方式是定位不了的,需要采用軸定位方式
//div[@class="choose"]/following-sibling::a/span[@class="str1"]