首先是大体用法。直接用代码说明。
import selenium
from selenium import webdriver
import os
import time
uid = "1111" # 学号
pwd = "1111" # 密码
# 这部分用来设置运行时不显示浏览器窗口
#chrome_options = Options()
#chrome_options.add_argument("--headless")
# 模拟浏览器进行访问
browser = webdriver.Chrome()
browser.get("https://ids.xmu.edu.cn/authserver/login?service=https://xmuxg.xmu.edu.cn/login/cas/xmu")
time.sleep(1)
# 通过find_element_by_xpath来定位用户名和密码的输入框
browser.find_element_by_xpath("//form[@id='casLoginForm']/p[1]/input").send_keys(uid)
browser.find_element_by_xpath("//form[@id='casLoginForm']/p[2]/input[@id='password']").send_keys(pwd)
browser.find_element_by_xpath("//form[@id='casLoginForm']/p[4]/button").click()
time.sleep(1)
browser.find_element_by_xpath("//div[@class='box_main box_flex']/div[2]").click()
time.sleep(1)
#browser.find_element_by_id("我的表单").click()
browser.find_element_by_xpath("//div[@class='gm-scroll-view']/div[2]").click()
#browser.find_element_by_xpath("/html/body/div[1]/div[1]/div/div/div/div[1]/div[2]/div/div[3]/div[2]").click()
#final_text = browser.find_element_by_xpath("//*[@id='bak_0']/div[2]/div[2]/div[2]/div[2]").text
然后在跑代码的时候,可能遇到报错selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element:
,这时候有下列三种解决办法:
1、可能是iframe的问题,解决方法见相关博客。
怎么知道是不是呢,F12调出网页代码,然后搜索frame,看看自己想找的部分是不是在iframe框架里面。
2、如果要搜索的是形如:
browser.find_element_by_class_name(‘btn-search tb-bg’).click()
或
browser.find_element_by_class_name(‘btn-search.tb-bg’).click()
这时,应该去掉空格后面的部分,改为:
browser.find_element_by_class_name(‘btn-search’).click()
3、直接检查自己的xpath路径是不是对的。
F12调出网页代码,然后ctrl F,在代码里搜索该xpath,能搜到的话就是没问题的;不能搜到说明写错了。