selenium节点操作及操作表单

一、常见的节点操作

  • 1、使用send_keys()输入框里面设置值
  • 2、使用clear()清除输入框里面的值
  • 3、使用click()执行页面的点击操作

    import time
    from selenium import webdriver
    # 使用键盘按键方法要导入下面的类
    from selenium.webdriver.common.keys import Keys
    
    browser = webdriver.Chrome()
    
    browser.get('https://www.baidu.com/')
    input = browser.find_element_by_xpath('//input[@id="kw"]')
    # 设置值
    input.send_keys('python')
    # 设置回车
    input.send_keys(Keys.ENTER)
    
    time.sleep(5)
    # 清除
    input.clear()
    input.send_keys('scrapy')
    
    btn = browser.find_element_by_xpath('//input[@class="bg s_btn"]')
    btn.click()
    
  • 4、关于更多的键盘键值操作请参数

二、动作链(多个连续的动作组合在一起,常见滑动解锁)参考文档

  • 1、使用拖放案例的网站

  • 2、具体的代码

    import time
    from selenium import webdriver
    from selenium.webdriver import ActionChains
    
    browser = webdriver.Chrome()
    
    browser.get('http://www.runoob.com/try/try.php?filename=jqueryui-api-droppable')
    # 切换到frame窗口
    browser.switch_to.frame('iframeResult')
    source = browser.find_element_by_css_selector('#draggable')
    target = browser.find_element_by_css_selector('#droppable')
    
    actions = ActionChains(browser)
    actions.drag_and_drop(source=source, target=target)
    time.sleep(5)
    actions.perform()
    # 操作完成后切换回主窗口
    browser.switch_to.default_content()
    
  • 3、几个常用的事件更多请参考

    • 1.click_and_hold(element):点击但不松开鼠标
    • 2.context_click(element):右键点击
    • 3.double_click(element):双击

      from selenium.webdriver.common.action_chains import ActionChains
      ActionChains(self.browser).double_click(节点)
      

三、表单操作

  • 1、输入框直接使用send_keys(value)输入值
  • 2、checkbox复选框的操作,因为要选中checkbox标签,在网页中是通过鼠标点击的。因此想要选中checkbox标签,那么先选中这个标签,然后执行click事件

    rememberTag = browser.find_element_by_name("rememberMe")
    rememberTag.click()
    
  • 3、选择select的操作:select元素不能直接点击。因为点击后还需要选中元素。这时候selenium就专门为select标签提供了一个类selenium.webdriver.support.ui.Select。将获取到的元素当成参数传到这个类中,创建这个对象。以后就可以使用这个对象进行选择了

    from selenium.webdriver.support.ui import Select
    # 选中这个标签,然后使用Select创建对象
    selectTag = Select(browser.find_element_by_name("jumpMenu"))
    # 根据索引选择
    selectTag.select_by_index(1)
    # 根据值选择
    selectTag.select_by_value("http://www.xxx.com")
    # 根据可视的文本选择
    selectTag.select_by_visible_text("xxx")
    # 取消选中所有选项
    selectTag.deselect_all()
    
  • 4、按钮的操作

    inputTag = browser.find_element_by_id('su')
    inputTag.click()
    # 如果type="submit"的时候可以使用
    element = browser.browser.find_element_by_name("rememberMe")
    element.submit()
    

四、使用execute_script执行Javascript脚本

  • 1、访问淘宝,让滚动条拉到最下面,然后弹出一句话

    import time
    from selenium import webdriver
    
    browser = webdriver.Chrome()
    
    browser.get('https://www.taobao.com/')
    
    time.sleep(5)
    # 执行脚本
    browser.execute_script('window.scrollTo(0, document.body.scrollHeight)')
    browser.execute_script('alert("hi 已经到底部了")')
    
    time.sleep(10)
    browser.quit()
    

五、操作浏览器

  • 1、打开关闭浏览器就直接看之前的章节了
  • 2、前进与后退(需要联系打开页面,然后才有历史记录)

    import time
    from selenium import webdriver
    
    browser = webdriver.Chrome()
    browser.get('https://www.baidu.com')
    browser.get('https://www.jd.com/')
    browser.get('https://www.taobao.com/')
    # 后退
    browser.back()
    time.sleep(2)
    # 前进
    browser.forward()
    time.sleep(2)
    browser.close()
    
  • 3、多开几个浏览器(一般浏览器以tab方式展示)

    import time
    from selenium import webdriver
    
    browser = webdriver.Chrome()
    browser.get('https://www.baidu.com')
    # 新开一个窗口
    browser.execute_script("window.open('https://www.jd.com/')")
    browser.execute_script("window.open('https://www.taobao.com/')")
    
    time.sleep(5)
    browser.switch_to.window(browser.window_handles[0])
    time.sleep(5)
    browser.switch_to.window(browser.window_handles[1])
    time.sleep(5)
    browser.switch_to.window(browser.window_handles[2])
    time.sleep(5)
    browser.close()
    

results matching ""

    No results matching ""