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

执行结果:

 

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