python做自动化如何定位动态元素_python-web自动化-元素定位
# -*- coding:utf-8 -*-
from selenium import webdriver
from selenium.webdriver.common.by import By
# 打開Chrome瀏覽器和百度網頁
driver = webdriver.Chrome()
driver.get('https://www.baidu.com/')
# 元素定位:id絕對唯一,name其次
# id 定位‘百度首頁輸入框’元素,并輸入內容
driver.find_element_by_id('kw').send_keys('軟件測試')
driver.find_element(By.ID,'kw').send_keys('軟件測試')
# classname
# 返回符合條件的第一個元素
driver.find_element_by_class_name('s_ipt').send_keys('今日新聞')
# 返回符合條件的所有元素,返回值是list,每一個值都是一個Webelement對象
# 不能再后面用send.key(),報錯AttributeError: 'list' object has no attribute 'send_keys'
driver.find_elements_by_class_name('s_ipt')
# tag_name
driver.find_element_by_tag_name('span')
driver.find_elements_by_tag_name('span')
#name
driver.find_element_by_name('wd').send_keys('成功')
driver.find_elements_by_name('wd')
#link_text
driver.find_element_by_link_text('貼吧').click()#完全匹配,一模一樣
driver.find_element_by_partial_link_text('貼').click()#模糊匹配,包含即可
driver.find_elements_by_link_text('貼吧')#完全匹配,一模一樣
driver.find_elements_by_partial_link_text('貼')
# css
driver.find_element_by_css_selector('')
# xpath
driver.find_element_by_xpath('')
# 1. 絕對定位(不推薦用) : 以/開頭,父/子關系
# 2. 相對定位
# A:以//開頭,在這個html頁面中,有木有符合表達式的元素
# //標簽名[@屬性名稱=屬性值]
# //標簽名[@屬性名稱=屬性值 and @屬性名稱=屬性值]
#B:層級定位
# C: 文本內容定位: //標簽名[text()='文本值']
# D: 包含定位 : contains
# contains(@屬性名,屬性值) 例如 //a[contains(@class,"btns-enter-qq")]
# contains(text(),屬性值)
# E: 軸定位(通過以下軸名稱定位)
# ancestor : 祖先節點,包括父
# parent : 父節點
# preceding: 當前元素節點標簽之前的所有節點(html頁面先后順序)
# preceding-slibling:當前元素節點標簽之前的所有兄弟結點
# following: 當前元素節點標簽之后的所有節點(html頁面先后順序)
# following-slibling:當前元素節點標簽之后的所有兄弟結點
# /軸名稱::節點名稱[@屬性名=屬性值]
總結
以上是生活随笔為你收集整理的python做自动化如何定位动态元素_python-web自动化-元素定位的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 联想一体机连接投影仪怎么操作?
- 下一篇: python第五章上机实践报告_第五章实