selenium的查找元素

一、关于不同浏览器的打开方式

  • 1、谷歌浏览器

    from selenium import webdriver
    browser = webdriver.Chrome()
    
  • 2、火狐浏览器

    from selenium import webdriver
    browser = webdriver.Firefox()
    
  • 3、IE浏览器

    from selenium import webdriver
    browser = webdriver.Edge()
    
  • 4、Safari浏览器

    from selenium import webdriver
    browser = webdriver.Safari()
    
  • 5、无界面PhantomJS中使用

    from selenium import webdriver
    browser = webdriver.PhantomJS()
    

二、关于打开与关闭

  • 1、打开浏览器

    from selenium import webdriver
    browser = webdriver.Chrome()
    browser.get('https://www.baidu.com')
    
  • 2、关闭

    browser.close():关闭当前页面。
    browser.quit():退出整个浏览器。
    

三、查找元素

  • 1、find_element_by_id()根据id来查找某个元素

    browser.find_element_by_id('dom')
    
  • 2、find_element_by_class_name()根据类名来查询某元素

    browser.find_element_by_class_name('dom')
    
  • 3、find_element_by_name()根据name属性的来查找元素(常见input输入框上)

    browser.find_element_by_name('username')
    
  • 4、find_element_by_tag_name()根据标签名来获取

    browser.find_element_by_name('div')
    
  • 5、find_element_by_xpath()可以使用xpath语法来查找

    browser.find_element_by_xpath('//div[@class="div1"]')
    
  • 6、find_element_by_css_selector()根据css来获取

    browser.find_element_by_css_selector('#div1') # 查找id="div1"的元素
    
  • 7、多节点的获取

    要注意,find_element是获取第一个满足条件的元素(需要注意)。find_elements是获取所有满足条件的元素。

  • 8、推介使用find_element_by_xpath或者find_element_by_css_selector

  • 9、使用find_element来查找节点

    from selenium.webdriver.common.by import By
    browser.find_element(By.CSS_SELECTOR, '#div1') # 根据id查找
    browser.find_element(By.ID,'div1') # 根据id查找
    browser.find_element(By.CLASS_NAME,'su') # 根据class查找
    browser.find_element(By.NAME,'email') # 根据name查找
    browser.find_element(By.TAG_NAME,'div')
    browser.find_element(By.XPATH,'//div')
    

四、使用selenium获取京东购物商城左侧导航

  • 1、需要爬取的数据

    京东

  • 2、使用selenium抓取数据

    import time
    from selenium import webdriver
    
    browser = webdriver.Chrome()
    
    browser.get('https://www.jd.com/')
    
    lis_dom = browser.find_elements_by_xpath('//ul[@class="JS_navCtn cate_menu"]/li[@class="cate_menu_item"]')
    
    print(lis_dom)
    print(type(lis_dom))
    
    for item in lis_dom:
        # 可以继续链式的查找,获取文本信息
        print(item.find_element_by_xpath('./a[@class="cate_menu_lk"]').text)
    
    time.sleep(4)
    browser.close()
    

results matching ""

    No results matching ""