selenium的使用(三)

258 阅读1分钟

CSDN登录(滑动验证码无解)

"""
尝试搞定CSDN
这个也失败了,原因是滑动验证码的问题:没有解决
"""
import selenium
import selenium.webdriver
import time

driver = selenium.webdriver.Chrome(r"C:\Users\xxxx\Desktop\chromedriver.exe")
driver.get("https://passport.csdn.net/login?code=public")
time.sleep(3)
# driver.switch_to.frame("login_frame")
elem = driver.find_element_by_xpath("//*[@class="main-select"]/ul//li[2]/a")
elem.click()
time.sleep(2)

name_elem = driver.find_element_by_id("all")
name_elem.send_keys("xxxxxxx")
time.sleep(1)
pwd_elem = driver.find_element_by_id("password-number")
pwd_elem.send_keys("xxxxx")
time.sleep(1)
but_elem = driver.find_element_by_xpath("//*[@data-type="account"]")
but_elem.click()
time.sleep(8)
logincenter = driver.find_element_by_xpath("//*[@class="loginCenter"]/a")
logincenter.click()
time.sleep(3)

# 提取user信息
username = driver.find_element_by_xpath("//*[@class="nick"]//span[1]").text
print(username)

driver.close()
"""
注意下这种写法:
driver.find_element_by_class_name("xxxxx").get_attribute("src")
"""

操作js

  • 操作js
    • driver.execute_script(js_str)
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time

driver = webdriver.Chrome(r"C:\Users\xxxx\Desktop\chromedriver.exe")
driver.get("https://www.baidu.com")

driver.find_element_by_id("kw").send_keys("hello")
driver.find_element_by_id("kw").send_keys(Keys.RETURN)
time.sleep(5)
js = "window.scrollTo(200,550)"
driver.execute_script(js)
time.sleep(5)

driver.quit()

模拟键盘进行操作

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time

"""
selenium 模拟键盘进行操作
"""
driver = webdriver.Chrome(r"C:\Users\xxxxx\Desktop\chromedriver.exe")
driver.maximize_window()
driver.get("https://www.baidu.com")
driver.find_element_by_id("kw").send_keys("hello")
driver.find_element_by_id("kw").send_keys(Keys.BACK_SPACE)
time.sleep(5)

# 发送组合键,ctrl+a  完成全选功能
driver.find_element_by_id("kw").send_keys(Keys.CONTROL,"a")

# 全选+回退--完成清空功能
time.sleep(2)
driver.find_element_by_id("kw").send_keys(Keys.BACK_SPACE)

time.sleep(5)
driver.close()