Python Selenium 笔记

这里用的是Firefox的 webdriver

browser = webdriver.Firefox(executable_path =r"D:\geckodriver")

通过get打开网页

browser.get("https://www.baidu.com")

窗口最大化

browser.maximize_window()

输入内容

browser.find_element_by_id("un").send_keys("学号")

点击事件

browser.find_element_by_id("index_login_btn").click()

close 和 quit 的区别

# close 是关闭当前tab
browser.close()
# quit 是关闭整个浏览器
browser.quit()

在自动化操作的时候可能会遇到多个标签页,这里我还不是很清楚,一个标签页对应一个句柄

# 获得所有句柄
handles = browser.window_handles
# 获得当前句柄
currentWin = browser.current_window_handle

因为我在使用的时候,最多只会遇到两个标签页,多的标签页可以直接close掉,因此没有深究怎么切换到指定的标签页的方法,只要每次产生新的标签页的时候,我就把当前的标签页关掉,然后获得新标签页的句柄(因为只有一个标签页,因此句柄也只有一个)

# 假装这里打开了新的标签页
# 关闭当前标签页
browser.close()
# 获得所有句柄(这时只有1个)
handles = browser.window_handles
# 切换到这个句柄上
browser.switch_to.window(handles[0])

当页面中有iframe标签的时候,选择器无法选择到iframe中的内容,因此要切换到iframe内

# 这里只要获得了对应的iframe标签即可,比如用id也可以
iframe = browser.find_elements_by_tag_name("iframe")[0]
# 切换到iframe中就可以用css选择器之类的去获取元素
browser.switch_to.frame(iframe)
# 对iframe中的内容操作完了,返回原页面
browser.switch_to.default_content()