zoukankan      html  css  js  c++  java
  • selenium学习笔记02-selenium定位的八大方法

    selenium实现元素定位

    要操作web界面上元素,首先要定位到该元素

    from selenium import webdriver
    from time import sleep
    
    # from .chrome.webdriver import WebDriver as Chrome  # noqa
    
    class TestCase(object):
        def __init__(self):
            self.driver = webdriver.Chrome()
            self.driver.get("http://www.baidu.com")
            self.driver.maximize_window()
            sleep(1)
    
        def test_id(self):
            # 返回唯一
            element = self.driver.find_element_by_id('kw')
            element.send_keys('selenium')
            print(type(element))
            # <class 'selenium.webdriver.remote.webelement.WebElement'>
            self.driver.find_element_by_id('su').click()
            sleep(3)
            # self.driver.quit()
    
        def test_name(self):
            # 方法可能返回多个元素,返回第一个
            # self.driver.find_elements_by_name()返回一个集合
            self.driver.find_elements_by_name('wd').send_keys('selenium')
            self.driver.find_element_by_id('su').click()
            sleep(3)
            self.driver.quit()
        def test_linktext(self):
            self.test_id()
            self.driver.find_element_by_link_text('百度首页').click()
            sleep(3)
            self.driver.quit()
    
        def test_partial_linktext(self):
            self.test_id()
            self.driver.find_element_by_partial_link_text('百度').click()
            sleep(3)
            self.driver.quit()
        def text_xpath(self):
            self.driver.find_element_by_xpath('//*[@id="kw"]').send_keys('xpath')
            self.driver.find_element_by_id('su').click()
        def text_tag(self):
            # 返回一个集合
            input = self.driver.find_element_by_tag_name('input')
            print(input)
        def text_css_selector(self):
            self.driver.find_element_by_css_selector('#kw').send_keys('selenium')
            self.driver.find_element_by_id('su').click()
        def text_class_name(self):
            self.driver.find_element_by_class_name('s_ipt').send_keys('selenium')
            self.driver.find_element_by_id('su').click()
            sleep(3)
            self.driver.quit()
        def text_all(self):
            self.driver.find_element(value='kw').send_keys('selenium')
            self.driver.find_element_by_id('su').click()
            sleep(3)
            self.driver.quit()
    
    if __name__ =="__main__":
        case = TestCase()
        # case.test_id()
        # case.test_name()
        # case.test_linktext()
        # case.test_partial_linktext()
        # case.test_partial_linktext()
        # case.text_tag()
        # case.text_css_selector()
        # case.text_class_name()
        case.text_all()

    提取,封装,做公共部分
    from time import sleep
    
    from selenium import webdriver
    from selenium.webdriver.common.by import By
    
    
    def get_element(driver,*log):
        e = driver.find_element(*log)
        return e
    
    
    if __name__ == "__main__":
        driver = webdriver.Chrome()
        driver.get("http://www.baidu.com")
        sleep(1)
        get_element(driver, By.ID, 'kw').send_keys('selenium')
        get_element(driver, By.ID, 'su').click()
  • 相关阅读:
    warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
    Windows10+CLion+OpenCV4.5.2开发环境搭建
    Android解决部分机型WebView播放视频全屏按钮灰色无法点击、点击全屏白屏无法播放等问题
    MediaCodec.configure Picture Width(1080) or Height(2163) invalid, should N*2
    tesseract
    Caer -- a friendly API wrapper for OpenCV
    Integrating OpenCV python tool into one SKlearn MNIST example for supporting prediction
    Integrating Hub with one sklearn mnist example
    What is WSGI (Web Server Gateway Interface)?
    Hub --- 机器学习燃料(数据)的仓库
  • 原文地址:https://www.cnblogs.com/yronl/p/14447352.html
Copyright © 2011-2022 走看看