常用的元素定位:ID,Name,xpath,css 等等
selenuim demo
import timefrom selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
web_driver=webdriver.Firefox()
url="https://www.baidu.com"
web_driver.get(url)
#最多等待5秒,如果在2秒找到了元素 ,會執行下一步
# web_driver.implicitly_wait(5)#點擊 新聞 連接
el=(By.LINK_TEXT,"新聞")
el_select=web_driver.find_element(*el)
#等待元素 最長等待10秒,每2秒找一次
WebDriverWait(web_driver,10,2).until(EC.presence_of_element_located(el))
el_select.click()time.sleep(3)
#切回第1個tab
web_driver.switch_to.window(web_driver.window_handles[0])
#搜索selenuim
web_driver.find_element(By.ID,"kw").send_keys("selenuim")
web_driver.find_element(By.ID,"su").click()
time.sleep(3)web_driver.quit()
DrissionPage demo
幫助文檔http://drissionpage.cn
import time
from DrissionPage import WebPage
from DrissionPage.common import By as DrissionBy
web_page=WebPage('d')
# get()已內置等待加載開始,后無須跟wait.load_start()
web_page.get(url)#XPATH 獲取元素
# loc=(DrissionBy.XPATH,'//*[@id="s-top-left"]/a[1]')
#link_text 獲取元素
loc=(DrissionBy.LINK_TEXT,'新聞')
# 等待元素加載 超時時間為5秒
web_page.wait.eles_loaded(loc,timeout=5)
web_page.ele(loc).click()time.sleep(3)# DrissionPage 3.x 開始就支持多 tab 對象共存,對象之間互不影響,而且標簽頁無需激活即可操作。因此不再需要切換標簽頁。
loc=(DrissionBy.ID,"kw")
#設置文本框值
web_page.ele(loc).input("DrissionPage")
loc=(DrissionBy.ID,"su")
web_page.ele(loc).click()time.sleep(10)
web_page.quit()