zoukankan      html  css  js  c++  java
  • selenium笔记

    selenium 元素定位方法

    1. 通过id定位元素:find_element_by_id("id_vaule")
    2. 通过name定位元素:find_element_by_name("name_vaule")
    3. 通过tag_name定位元素:find_element_by_tag_name("tag_name_vaule")
    4. 通过class_name定位元素:find_element_by_class_name("class_name")
    5. 通过css定位元素:find_element_by_css_selector()
    6. 通过xpath定位元素:find_element_by_xpath("xpath")
    7. 通过link:find_element_by_link_text("text_vaule")
    8. 通过find_element_by_partial_link_text()

    常用方法

    from selenium import webdriver
    from time import sleep
    
    driver = webdriver.Chrome()
    driver.implicitly_wait(10)   #隐形等待
    driver.get('https://www.baidu.com/')
    sleep(1)
    
    #以五种定位方式定位到百度首页的搜索输入框
    kw_find = driver.find_element_by_id('kw')
    #kw_find= driver.find_element_by_class_name('s_ipt')
    #kw_find= driver.find_element_by_name('wd')
    #kw_find = driver.find_element_by_xpath('//*[@id="kw"]')
    #kw_find = driver.find_element_by_css_selector('#kw') #id用#kw,class用.s_ipt ,与css的简写方式相同
    
    #send_keys() 是selenium自带的方法,用来输入文本
    kw_find.send_keys('selenium')
    
    #使用id定位方式定位到搜索按钮
    su_find = driver.find_element_by_id('su')
    
    #click() 是selenium自带的方法,用来点击定位的元素
    su_find.click()
    
    sleep(1)
    driver.quit()
    

      selenium 实战 - 拖动滚动条

    from selenium import webdriver
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.support import expected_conditions as EC
    from selenium.webdriver.common.action_chains import ActionChains
    from selenium.webdriver.common.keys import Keys
    from selenium.webdriver.support.ui import Select
    
    import time
    import random
    
    # 加载xpath插件
    chrome_options = webdriver.ChromeOptions()
    extension_path = 'D:/extension/XPath-Helper_v2.0.2.crx'
    chrome_options.add_extension(extension_path)
    
    browser = webdriver.Chrome(chrome_options=chrome_options)
    #browser.maximize_window()
    wait = WebDriverWait(browser, 25)
    waitPopWindow = WebDriverWait(browser, 25)
    
    browser.get("https://www.amazon.com/s/ref=nb_sb_noss_2?url=search-alias%3Daps&field-keywords=phone")
    
    time.sleep(random.randrange(5, 10, 1))
    
    # 找到 Next Page 按钮, 属于可见元素
    # js代码有两种写法,但是对元素的要求不同,focus更为严格
    
    # 第一种方法:focus
    targetElem = browser.find_element_by_xpath("//a[@id='pagnNextLink']")
    browser.execute_script("arguments[0].focus();", targetElem)
    
    # 第二种方法:scrollIntoView
    # targetElem = browser.find_element_by_xpath("//a[@id='pagnNextLink']/span[@id='pagnNextString']")
    # browser.execute_script("arguments[0].scrollIntoView();", targetElem)    # 拖动到可见的元素去
    
    print(f"结束拖动滚动条....")
    time.sleep(random.randrange(5, 10, 1))
    browser.quit()
    

      selenium 实战 - 拖动指定距离

    from selenium import webdriver
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.support import expected_conditions as EC
    from selenium.webdriver.common.action_chains import ActionChains
    from selenium.webdriver.common.keys import Keys
    from selenium.webdriver.support.ui import Select
    
    import time
    import random
    
    # 加载xpath插件
    chrome_options = webdriver.ChromeOptions()
    extension_path = 'D:/extension/XPath-Helper_v2.0.2.crx'
    chrome_options.add_extension(extension_path)
    
    browser = webdriver.Chrome(chrome_options=chrome_options)
    browser.maximize_window()
    wait = WebDriverWait(browser, 25)
    waitPopWindow = WebDriverWait(browser, 25)
    
    browser.get("https://www.amazon.com/s/ref=nb_sb_noss_2?url=search-alias%3Daps&field-keywords=phone")
    
    time.sleep(random.randrange(5, 10, 1))
    # 指定像素
    jsCode = "var q=document.documentElement.scrollTop=100000"
    browser.execute_script(jsCode)
    print("拖动滑动条到底部...")
    
    time.sleep(random.randrange(5, 10, 1))
    browser.quit()
    

      发送 TAB 移动

    from selenium import webdriver
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.support import expected_conditions as EC
    from selenium.webdriver.common.action_chains import ActionChains
    from selenium.webdriver.common.keys import Keys
    from selenium.webdriver.support.ui import Select
    
    import time
    import random
    
    # 加载xpath插件
    chrome_options = webdriver.ChromeOptions()
    extension_path = 'D:/extension/XPath-Helper_v2.0.2.crx'
    chrome_options.add_extension(extension_path)
    
    browser = webdriver.Chrome(chrome_options=chrome_options)
    browser.maximize_window()
    wait = WebDriverWait(browser, 25)
    waitPopWindow = WebDriverWait(browser, 25)
    
    browser.get("https://www.amazon.com/s/ref=nb_sb_noss_2?url=search-alias%3Daps&field-keywords=phone")
    
    time.sleep(random.randrange(5, 10, 1))
    
    # 找到 Next Page 按钮, 属于可见元素
    
    # 指定元素是 超链接 ———— 可以用Tab键切换到
    targetElem = browser.find_element_by_xpath("//a[@id='pagnNextLink']")
    
    # 这个元素不是超链接,所以无法接收Tab键
    # targetElem = browser.find_element_by_xpath("//a[@id='pagnNextLink']/span[@id='pagnNextString']")
    
    targetElem.send_keys(Keys.TAB)
    
    print(f"结束拖动滚动条....")
    time.sleep(random.randrange(5, 10, 1))
    browser.quit()
    

      

    参考资料:

  • 相关阅读:
    java算法---五家共井
    JAVA实用工具--javamail
    java基础篇---HTTP协议
    java基础解疑!!!
    java基础解疑!!
    jsp----标签编程(JSTL)
    jsp----EL表达式
    java基础篇---线程问题
    算法篇---java经典问题!!!
    java基础篇---注解(Annotation)
  • 原文地址:https://www.cnblogs.com/iupoint/p/14437006.html
Copyright © 2011-2022 走看看