selenium

  1. selenium是一种web应用程序测试工具,可以模仿用户的操作
    用于爬虫:主要用于解决JavaScript的渲染问题
    selenium的安装:http://blog.csdn.net/qq_29186489/article/details/78581249

  2. 控制Chrome浏览器访问百度,搜索百度,获取搜索结果

    from selenium import webdriver
    from selenium.webdriver.common.by import By
    from selenium.webdriver.common.keys import Keys
    from selenium.webdriver.support import expected_conditions as EC
    from selenium.webdriver.support.wait import WebDriverWait
    import time
    
    #创建browser对象
    browser=webdriver.Chrome()
    try:
    	#访问网址
    	browser.get('https//www.baidu.com')
    	#获取搜索框
    	input=browser.find_element_by_id('kw')
    	#输入要搜索的值
    	input.send_keys('python')
    	#输入回车指令开始搜索
    	input.send_keys(Keys.ENTER)
    	#等待页面加载完成
    	wait=WebDriverWait(browser,10)
    	wait.until(EC.presence_of_element_located(By.ID,"content_left"))
    	#输出获得的页面
    	print(browser.page_source)
    finally:
    	#关闭浏览器
    	browser.close()
    
  3. 查找元素的三种方式

    input=browser.find_element_by_id('q')
    input=browser.find_element_by_css_selector('#q')
    input=browser.find_element(By.ID,'q')
    
  4. 元素的交互动作

    from selenium import webdriver
    import time
    browser=webdriver.Chrome()
    browser.get("https://www.taobao.com")
    input=browser.find_element_by_id("q")
    input.send_keys("iPhone")
    time.sleep(10)
    #清空clear
    input.clear()
    input.send_keys("iPad")
    button=browser.find_element_by_class_name("btn-search")
    #点击click
    button.click()
    time.sleep(10)
    browser.close()
    
  5. 获取元素的属性

    	from selenium import webdriver
    
    	browser=webdriver.Chrome()
    	url="https://www.zhihu.com/explore"
    	browser.get(url)
    	logo=browser.find_element_by_id("zh-top-link-logo")
    	#获取类名
    	print(logo.get_attribute("class"))
    	#获取文本
    	print(logo.text)
    	print(logo)
    	#获取id
    	print(logo.id)
    	#获取位置
    	print(logo.location)
    	#获取标签名
    	print(logo.tag_name)
    	#获取大小
    	print(logo.size)
    	browser.close()
    
  6. 等待

    #隐式等待
    browser.implicitly_wait(10)
    #显式等待
    wait=browser.WebDriverWait(browser,10)
    
  7. 浏览器的前进和后退

    browser.back()
    browser.forward()
    
  8. 无头访问
    创建browser前加入以下代码

    chrome_options=Options()
    chrome_options.add_argument('--enable-logging')
    chrome_options.add_argument('--headless')
    chrome_options.add_argument('--disable-gpu')
    
    browser=webdriver.Chrome(chrome_options=chrome_options)
    
  9. 当打开多个窗口时,多个窗口之间的切换

     # 获取当前窗口handle name
    current_window = driver.current_window_handle 
    # 获取所有窗口handle name
    all_windows = driver.window_handles  
    # 切换window,如果window不是当前window,则切换到该window
    for window in all_windows:
       if window != current_window: if window != current_window:
           driver.switch_to.window(window)driver.switch_to.window(window)
    # 关闭新窗口后切回原窗口,在这里不切回原窗口,是无法操作原窗口元素
    driver.close()
    driver.switch_to.window(current_window) 
    
  10. alert操作

    # 1.通过switch_to.alert切换到alert
    a1 = driver.switch_to.alert  
    a1.accept()#alert确认
    
    #2.直接实例化alert对象
    a1 = Alert(driver) 
    a1.dismiss()  # alert“取消”
    
操作效果
Alert(driver).accept()等同于点击确认
Alert(driver).dismiss()等同于点击取消
Alert(driver).authenticate(username,password)验证,针对需要身份验证的alert,目前还没有找到特别合适的示例页面
Alert(driver).send_keys(keysToSend)发送文本,对有提交需求的prompt框
Alert(driver).text获取alert文本内容,对有信息显示的alert框
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值