- 自己学习总结的代码,搞了半天找了好多资料
- 你把下面的代码运行,并分析透代码和结果,就可以快速入门掌握了
- 我的版本:Python3、selenium3、Google版本91.0.4472.114(正式版本)(64 位)
- 要想仔细学,可以参考中文翻译文档网站:https://selenium-python-zh.readthedocs.io/
操纵标签
from selenium import webdriver
from time import sleep
from selenium.webdriver.common.keys import Keys
browser=webdriver.Chrome()
'''
三个概念:窗口、句柄、当前窗口句柄
'''
# 打开新窗口,并每个窗口定义一个句柄
browser.get('http://www.baidu.com')
handle1= browser.current_window_handle
print(handle1)
print('---'+browser.current_window_handle)
sleep(2)
browser.execute_script("window.open('http://www.zhihu.com')")#通过执行js打开新的窗口,也可以通过点击某个<a>来打开新窗口
handle2=browser.window_handles[-1] #新加入的窗口
print(handle2)
print('---'+browser.current_window_handle)
sleep(2)
browser.execute_script("window.open('http://www.sogou.com')")
handle3=browser.window_handles[-1]
print(handle3)
print('---'+browser.current_window_handle)
sleep(2)
print('***********************************************\n')
#切换浏览器当前窗口
browser.switch_to.window(handle2)
print('---'+browser.current_window_handle)
sleep(2)
browser.switch_to.window(browser.window_handles[3-1])
print('---'+browser.current_window_handle)
sleep(2)
print('***********************************************\n')
#遍历所有窗口
print(browser.window_handles)
for handle in browser.window_handles:
print(handle)
browser.switch_to.window(handle)
print('---'+browser.current_window_handle)
sleep(1)
print('***********************************************\n')
#关闭当前窗口(指的是browser.current_window_handle)
browser.close()
sleep(2)
browser.switch_to.window(handle1)
browser.close()
sleep(2)
browser.quit()
操纵键盘
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.action_chains import ActionChains
import time
driver = webdriver.Chrome()
driver.get("https://www.baidu.com")
driver.maximize_window()
time.sleep(3)
# 他妈的!只能在一个标签内操作!下面两行代码都没有用。。。。。
# driver.find_element_by_id("kw").send_keys(Keys.CONTROL, 'w')
# ActionChains(driver).key_down(Keys.CONTROL).send_keys("t").key_up(Keys.CONTROL).perform();
#使用driver来控制键盘:依靠元素,功能不强大
driver.find_element_by_id("kw").send_keys('No Bug ')
time.sleep(3)
driver.find_element_by_id("kw").send_keys(Keys.CONTROL+'a')
driver.find_element_by_id("kw").send_keys(Keys.CONTROL+'c')
time.sleep(3)
#使用ActionChains控制键盘:不依靠元素,一次只能按一个键,但组合起来功能强大
ActionChains(driver).send_keys(Keys.RIGHT).key_down(Keys.CONTROL).send_keys('v').key_up(Keys.CONTROL).perform()
time.sleep(3) #注意:上一行如果不松开contrl键,则会一直不松,则下一行代码会执行不了
ActionChains(driver).key_down(Keys.SHIFT).send_keys('cbl').key_up(Keys.SHIFT).send_keys(Keys.ENTER).perform()
time.sleep(3)
driver.quit()