By類定位介紹
導入By類 :from selenium.webdriver.common.by import By
方法:
find_element(By.ID, "kw")
find_element(By.NAME, "kw")
find_element(By.XPATH, "kw")
find_element(By.CLASS_NAME, "kw")
find_element(By.LINK_TEXT, "kw")
find_element(By.CSS_SELECTOR, "kw")
JavaScript定位介紹
方法:
document.getElementsByClassName()
document.getElementsByName()
document.getElementsByTagName()
document.querySelecttorAll()
以上方法返回list對象
document.getElementById()
調用js方法來執行JavaScript腳本:
execute_script()
示例代碼:
from selenium import webdriver
from selenium.webdriver.common.by import By
import time
driver = webdriver.Chrome()
driver.maximize_window()
# By類定位
# url = "https://www.baidu.com/"
# driver.get(url)
# driver.find_element(By.ID, "kw").clear()
# driver.find_element(By.ID, "kw").send_keys("hello")
# driver.find_element(By.ID, "su").click()
# print("網頁標題:", driver.title)
# JavaScript定位
url = "https://www.jianshu.com/sign_in"
driver.get(url)
time.sleep(2)
# 登錄信息
number = 'document.getElementsByTagName("input")[2].value="123456";' # 賬號
password = 'document.getElementsByTagName("input")[3].value="123456";' # 密碼
driver.execute_script(number) # execute_script()調用js方法來執行JavaScript腳本
driver.execute_script(password)
time.sleep(2)
# 登錄按鈕
sign_in = 'document.getElementsByClassName("active")[0].click()'
driver.execute_script(sign_in)
time.sleep(2)
print("網頁標題:", driver.title)
# 註冊按鈕
# register = 'document.getElementById("js-sign-up-btn").click()'
# driver.execute_script(register)
# time.sleep(2)
# print("網頁標題:", driver.title)
driver.quit()
執行結果: