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()
执行结果: