zoukankan      html  css  js  c++  java
  • Selenium3+python几种定位元素的方法

    学习小结:

    这里使用ChromeV73+web driver 2.46

     1 #几种定位方式:
     2 #Autotest.py
     3 from selenium import webdriver
     4 from selenium.webdriver.common.by import By
     5 import time
     6 
     7 dr = webdriver.Chrome()
     8 dr.get("http://www.baidu.com")
     9 
    10 #通过各种元素:name,id,class,tag,text
    11 
    12 dr.find_element_by_name('wd').send_keys('apple')              #name
    13 dr.find_element_by_id('su').click                                     #id
    14 dr.find_element_by_class_name('s_ipt').send_keys('apple')   #class
    15 dr.find_element_by_tag_name('')                #tag    
    16 dr.find_element_by_link_text('新闻').click()                #通过文字链接打开下级页面
    17 dr.find_element_by_partial_link_text('一段很长的').click()#通过长文字的一部分定位元素
    18 
    19 
    20 #从一组相同标签的元素里找到目标元素
    21 inputs = dr.find_elements_by_tag_name('input')
    22 for i in inputs:
    23     if i.get_attribute('name') == "wd":
    24         i.send_keys('apple')    
    25 dr.find_element_by_id('su').click()
    26 
    27  
    28 #xpath定位元素:
    29 dr.find_element_by_xpath("//input[@id='kw']").send_keys("天气")     #xpath定位元素:input下面: id='kw'
    30 dr.find_element_by_xpath("//*[@id='kw']").send_keys("天气")              #xpath定位元素:*=查找所有元素: id='kw'
    31 
    32  #父标签form,id='form' 下面第1个标签/span下面第1个/input(如果要定位的span是第二个则为/span[2])
    33 dr.find_element_by_xpath("//form[@id='form']/span[1]/input[1]").send_keys("天气")   #这里【1】可以省略,只是为了理解
    34 
    35 dr.find_element_by_xpath("/html/body/div/div/div/div/div/form/span/input").send_keys('天气')   #xpath: 绝对路径定位元素
    36 
    37 #css选择器定位:
    38 dr.find_element_by_css_selector('.s_ipt').send_keys("天气")      #.class
    39 dr.find_element_by_css_selector('#kw').send_keys("天气")       #ID
    40 dr.find_element_by_css_selector('input[maxlength="255"]').send_keys("天气")
    41 
    42 #下面这个意思是css定位:标签form(.表示class)class='fm' 下面的子标签span 的 子标签 input的 id='kw'(#表示id)
    43 dr.find_element_by_css_selector('form.fm > span > input#kw').send_keys("天气")
    44 
    45 
    46 #By类定位,需要引入By类
    47 #dr.find_element(By.ID,'kw').send_keys('天气')
    48 #dr.find_element(By.NAME,'wd').send_keys('天气')
    49 #dr.find_element(By.CLASS_NAME,'s_ipt').send_keys('天气')
    50 #dr.find_element(By.TAG_NAME,'input').send_keys('天气')      #这里定位不到,需要类似上面的for循环
    51 #dr.find_element(By.LINK_TEXT,u'新闻').click()
    52 #dr.find_element(By.PARTIAL_LINK_TEXT,u'新').click()
    53 #dr.find_element(By.XPATH,"//*[@class='s_ipt']").send_keys('天气')
    54 #dr.find_element(By.CSS_SELECTOR,'form.fm > span > input#kw').send_keys('天气')
    55 
    56 time.sleep(3)
    57 dr.quit()
    58 
    59                     

    蜗牛跑的慢,是因为没有腿儿!
  • 相关阅读:

    链表
    Codeforces 1290A/1291C
    Codeforces 1291B
    Codeforces 1291A
    Codeforces 1295C
    Codeforces 1295B
    ZJNU 2356
    ZJNU 2354
    ZJNU 2353
  • 原文地址:https://www.cnblogs.com/xier/p/10545156.html
Copyright © 2011-2022 走看看