Selenium之By類和JavaScript定位。

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

執行結果:

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章