操纵标签
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()