from selenium import webdriver
import time
#声明浏览器对象
chromeDriver = 'C:\driver\chrome\chromedriver.exe'
driver=webdriver.Chrome(chromeDriver)
#访问页面(html源码)
url="https://www.qidian.com/"
driver.get(url)
html=driver.page_source
#拖拽操作
from selenium.webdriver import ActionChains
actions=ActionChains(driver)
nodeA=driver.find_elements_by_id('nodeA')
nodeB=driver.find_elements_by_xpath('//@id="nodeB"')
actions.drag_and_drop(nodeA,nodeB) #nodeA和nodeB是对应获取的页面元素 将这个拖拽动作添加到队列中
actions.perform() #将A拖动到B位置 执行动作 如果有多个动作 顺序触发
#切换frame操作(针对点击后出现弹窗情况)
driver.switch_to.frame('frame-node')
#执行JavaScript语句
driver.execute_script('window.alert("hello selenium")')
#延迟等待:显式和隐式等待
#显式
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
wait=WebDriverWait(driver,10) #等待加载页面 最多等待10秒
node=wait.until(EC.presence_of_element_located(By.XPATH,'//*[@id="node"]')) #判断节点是否存在
#前进和后退
driver.back()
driver.forward()
#添加秘钥
driver.add_cookie({'name':'i8888','domain':'www.baidu.com'})
#不同页签打开及切换
url1="http://www.baidu.com"
driver.get(url)
driver.execute_script('window.open()') #打开一个新的标签页(使用javascript)
print( driver.window_handles) #打印所有标签页
#driver.switch_to_window(driver.window_handles[1]) #切换到第二个标签页(这里的后缀是从0开始的)
driver.switch_to.window(driver.window_handles[1]) #切换到第二个标签页(这里的后缀是从0开始的)
driver.get(url1) #在第二个标签页打开url1界面
driver.switch_to.window(driver.window_handles[0]) #切换回第一个标签页
#关闭浏览器
time.sleep(2)
driver.close()