#coding=utf-8 from selenium import webdriver driver = webdriver.Chrome() driver.get("http://www.baidu.com") driver.maximize_window() #将浏览器最大化显示 driver.set_window_size(480, 800) #设置浏览器宽480、高800显示" driver.back() #后退 driver.forward() #前进 driver.close() #关闭chrome driver.quit() # 退出chrome |
通过 id 定位:find_element_by_id() 通过 name 定位:find_element_by_name() 通过 class 定位:find_element_by_class_name() 通过 tag 定位:find_element_by_tag_name() 通过 link 定位:find_element_by_link_text() 通过 partial_link 定位:find_element_by_partial_link_text() 通过 xpath 定位:find_element_by_xpath() 通过 css 定位:find_element_by_css_selector() |
id 定位:document.getElementById() name 定位:document.getElementsByName() tag 定位:document.getElementsByTagName() class 定位:document.getElementsByClassName() css 定位:document.querySelectorAll() search_js = "document.getElementsByName('wd')[0].value='selenium';"# 通过name定位,然后赋值“selenium” search_js2 = "document.querySelectorAll('.s_ipt')[0].value='selenium';"# 通过css定位,然后赋值“selenium” button_js = "document.getElementById('su').click();"# 通过id定位,然后执行单击操作 button_js2 = "document.getElementsByClassName('s_btn')[0].click()"# 通过className定位,然后执行单击操作 driver.execute_script(search_js2)#执行,execute_script(script, *args) |
#coding=utf-8 from selenium import webdriver driver = webdriver.Chrome() driver.get("http://passport.kuaibo.com/login/") driver.find_element_by_id("user_name").clear() #清除输入框的默认内容 driver.find_element_by_id("user_name").send_keys("username") driver.find_element_by_id("user_pwd").clear() driver.find_element_by_id("user_pwd").send_keys("password") #输入输入框的内容为“password” driver.find_element_by_id("dl_an_submit").click() #通过 submit() 来提交操作 driver.find_element_by_id("dl_an_submit").submit() size=driver.find_element_by_id("kw").size #返回百度输入框的宽高 text=driver.find_element_by_id("cp").text #返回百度页面底部备案信息 #返回元素的属性值,可以是 id、name、type 或元素拥有的其它任意属性 attribute=driver.find_element_by_id("kw").get_attribute('type') #返回元素的结果是否可见,返回结果为 True 或 False result=driver.find_element_by_id("kw").is_displayed() driver.quit() #退出 |
from selenium import webdriver #引入 Keys 类包 from selenium.webdriver.common.keys import Keys #引入 ActionChains 类 from selenium.webdriver.common.action_chains import ActionChains ... #鼠标事件 #定位到要操作的元素 right =driver.find_element_by_xpath("xx") #对定位到的元素执行鼠标右键操作 ActionChains(driver).context_click(right).perform() #对定位到的元素执行鼠标双击操作 ActionChains(driver).double_click(right).perform() #对定位到的元素执行鼠标移动到上面的操作 ActionChains(driver).move_to_element(right).perform() #对定位到的元素执行鼠标左键按下的操作 ActionChains(driver).click_and_hold(right).perform() #定位元素的原位置 element = driver.find_element_by_name("xxx") #定位元素要移动到的目标位置 target = driver.find_element_by_name("xxx") #执行元素的移动操作 ActionChains(driver).drag_and_drop(element, target).perform() #键盘事件 #删除多输入的一个 值 driver.find_element_by_id("kw").send_keys(Keys.BACK_SPACE) #输入空格键+“教程” driver.find_element_by_id("kw").send_keys(Keys.SPACE) driver.find_element_by_id("kw").send_keys(u"教程") #ctrl+x 剪切输入框内容 driver.find_element_by_id("kw").send_keys(Keys.CONTROL,'x') #其余的键盘操作类似 |
#coding=utf-8 from selenium import webdriver #导入 WebDriverWait 包 from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC #导入 time 包 import time driver = webdriver.Chrome() driver.get("http://www.baidu.com") #WebDriverWait()方法使用,显示等待,WebDriverWait(driver,超时时长,调用频率,忽略异常).until(可执行方法,超时返回的信息),这里可以调用EC来实现可执行方法 is_disappeared = WebDriverWait(driver, 30, 1, (ElementNotVisibleException)).until_not(lambda x: x.find_element_by_id(“kw”).is_displayed()) #until(method, message=’ ’),调用该方法提供的驱动程序作为一个参数,直到返回值不为 False element.send_keys("selenium") #添加智能等待,隐时等待 driver.implicitly_wait(30) driver.find_element_by_id("su").click() #添加固定休眠时间,强制等待 time.sleep(5) driver.quit() |
#coding=utf-8 from selenium import webdriver import time driver = webdriver.Chrome() driver.get("http://www.baidu.com/") #获得当前窗口 nowhandle=driver.current_window_handle #打开注册新窗口 driver.find_element_by_name("tj_reg").click() allhandles=driver.window_handles #循环判断窗口是否为当前窗口 for handle in allhandles: if handle != nowhandle: driver.switch_to_window(handle) print 'now register window!' #切换到邮箱注册标签 driver.find_element_by_id("mailRegTab").click() time.sleep(5) driver.close() #回到原先的窗口 driver.switch_to_window(nowhandle) driver.find_element_by_id("kw").send_keys(u"注册成功!") time.sleep(3) #ifrome处理 #这里会自动识别id,name,如果没有则可以将元素通过选择器找到,然后输入该元素即可 driver.switch_to_frame("f1") element = driver.find_element_by_id("kw") driver.switch_to_frame(element) driver.quit()  |
#coding=utf-8 from selenium import webdriver import time driver = webdriver.Chrome() driver.get("http://www.baidu.com/") #点击打开搜索设置 driver.find_element_by_name("tj_setting").click() driver.find_element_by_id("SL_1").click() #点击保存设置 driver.find_element_by_xpath("//div[@id='gxszButton']/input").click() #获取网页上的警告信息 alert=driver.switch_to_alert() #接收警告信息 alert.accept() #取消对话框(如果有的话) alert.dismiss() #输入值(如果有的话) alert.send_keys(“xxx”) |
#coding=utf-8 from selenium import webdriver import time driver = webdriver.Chrome() driver.get("http://www.youdao.com") #向 cookie 的 name 和 value 添加会话信息。 driver.add_cookie({'name':'key-aaaaaaa', 'value':'value-bbbb'}) #遍历 cookies 中的 name 和 value 信息打印,当然还有上面添加的信息 for cookie in driver.get_cookies(): print "%s -> %s" % (cookie['name'], cookie['value']) ##### 下面可以通过两种方式删除 cookie ##### # 删除一个特定的 cookie driver.delete_cookie("CookieName") # 删除所有 cookie driver.delete_all_cookies() time.sleep(2) driver.close() |