它石吧 关注:32贴子:78
  • 6回复贴,共1

最近有不少在学习自动化的同学,下面内容会了吗!Webdriv

只看楼主收藏回复

最近有不少在学习自动化的同学,下面内容会了吗!
Webdriver元素的八大定位在Python语言中对应的写法:
find_element_by_id() 通过id属性定位(掌握)
find_element_by_name() 通过name属性定位(掌握)
find_element_by_class_name() 通过class属性定位(掌握)
find_element_by_link_text() 通过文本链接定位 (掌握)
find_element_by_partial_link_text() 通过部分文本链接定位(了解)
find_element_by_tag_name() 通过标签名字定位(了解)
find_element_by_xpath() 通过xpath语法定位(重点掌握)
find_element_by_css_selector() 通过css选择器定位(重点掌握)


来自iPhone客户端1楼2018-04-17 17:44回复
    4.1元素定位之 id 定位 通过id定位百度文本框,向文本框输入 python
    driver.find_element_by_id("kw").send_keys("python")
    4.2元素定位之 name 定位 通过name定位百度文本框,向文本框输入 python
    driver.find_element_by_name("wd").send_keys("python")
    4.3元素定位之 class_name(样式) 定位 通过class_name定位百度文本框,向文本框输入 python
    driver.find_element_by_class_name("s_ipt").send_keys("python")
    4.4元素定位之 link_text 定位 通过link_text定位(文本链接)
    driver.find_element_by_link_text(u"地图").click()
    4.5通过 partial_link_text 定位(部分文本链接),当文本内容出现多个时候,默认选择匹配到的第一个元素
    driver.find_element_by_partial_link_text(u"图").click()
    4.6通过tag_name定位(因为tag重复名会很高 慎用 有的时候会报错 找不到)
    driver.find_element_by_tag_name("input").send_keys(123246)
    4.7通过by定位
    driver.find_element(By.ID,"kw").send_keys(123246)
    driver.find_element(By.NAME,"wd").clear()


    来自iPhone客户端2楼2018-04-17 18:06
    回复
      定位界的倚天剑-----------> xpath 定位 (ctrl+f出现元素查找)
      xpath是什么?是一种xpah语法,跟html很像。我们主要用xpath定位。是根据HTML的路径进行一级一级的查找。
      xpath定位的优点和缺点:
      优点:语法丰富 超过近10种的定位方法
      缺点:1.定位速度慢 (相对于CSS定位而言) 2.抗变性弱
      xpah的层级关系表示 : /
      xpath的固定格式
      1.通过属性及属性值来定位元素方式
      id kw name wd
      //表签名【@属性名=“属性值”】
      //input[@id="kw"]
      通过添加序号的方式,定位相同属性的元素,序号是从1开始的
      //a[@class="mnav"][1]
      2.通过文本信息来定位元素:text是精确匹配文本
      //a[text()='新闻']
      3.通过部分文本信息来定位元素: (.代表当前节点)
      //a[contains(.,'慢火车')]
      4.当有些元素既没有id、name、也没有特殊文本。当定位它的时候就需要查找它的兄弟姐妹以及父辈或者子孙属性和层级定位
      //span[@id='s_ipt_wr']/input #先找到父亲
      //input[@id='kw']/../span (照相机) #先找到兄弟
      //input[@id='su']/.. #先找到儿子在找父亲
      5.如果他的兄弟姐妹,父亲及儿子也没有,就往上祖父去找属性和层级定位
      //form[@id='form']/span[1]/span #先找到祖父属性和层级定位
      //input[@id='su']/../../.. #先找到子孙在找父亲
      6.xpath的逻辑运算符定位 and
      //input[@type='hidden' and @name='ie']
      7.如果所有地方都没有id、name等唯一标签就使用绝对路径
      html/body/div[1]/div[1]/div/div[1]/div/form/span[1]/span


      来自iPhone客户端3楼2018-04-20 15:10
      回复
        定位界的屠龙刀-----------> CSS定位 css_selector
        css是层叠样式表,里面有一个css选择器被用来进行元素定位的辅助策略。
        css的定位优缺点:
        优点: 1.定位速度快 2.抗变性强 3.语法简洁
        缺点:目前没发现
        css 的简写方法:
        id ------------------ #
        class ------------------ .
        css的层级关系表示方法: > 表示位置的移动、
        1.通过id和class简写方式定位元素
        driver.find_element_by_css_selector("#kw").send_keys(123)
        driver.find_element_by_css_selector(".s_ipt").send_keys(123)
        2.通过属性及属性值来定位元素(相对于xpath,没有表示路径的//和属性名前的@符号,属性值的引号不用)
        表签名【属性名=“属性值”】
        driver.find_element_by_css_selector("input[name=wd]").send_keys(123)
        3.xpath的多个属性一起定位
        driver.find_element_by_css_selector(input[type=hidden][name=ie])
        4.通过父类和层级属性定位
        driver.find_element_by_css_selector("span#s_ipt_wr>input").send_keys(123)
        5.css的爷爷类和层级属性定位
        driver.find_element_by_css_selector("form#form>span>input").send_keys(123)
        6.通过同级兄弟和层级属性定位(根据兄弟元素定位时只能从上面的兄弟找下面的兄弟,如:css=p+li,写成li+p是不行的。)
        driver.find_element_by_css_selector(input#kw+span) (照相机) #先找到兄弟
        <a href=" " id="baiduUrl">baidu</a >
        <ul id="recordlist">
        a+ul
        a#baiduUrl+ul
        7.定位序号:
        :nth-of-type(序号)
        #form>span:nth-of-type(1)>span
        form#form>span:nth-of-type(1)>input
        8.通过文本内容定位元素 ( 相对于xpath,将text后面的()更改为了Content)
        driver.find_element_by_css_selector("a[textContent='新闻']")
        cssSelector还有一些高级用法,如果熟练后可以更加方便地帮助我们定位元素,如我们可以利用^用于匹配一个前缀,$用于匹配一个后缀,*用于匹配任意字符。例如:
        匹配一个有id属性,并且id属性是以”id_prefix_”开头的超链接元素:a[id^='id_prefix_']
        匹配一个有id属性,并且id属性是以”_id_sufix”结尾的超链接元素:a[id$='_id_sufix']
        匹配一个有id属性,并且id属性中包含”id_pattern”字符的超链接元素:a[id*='id_pattern']


        来自iPhone客户端4楼2018-04-20 15:11
        回复
          楼主辛苦了


          IP属地:广东来自iPhone客户端5楼2018-04-28 11:39
          回复
            全都学过


            来自Android客户端6楼2018-06-07 23:05
            回复
              😄,下次可以考一考你们哈


              来自iPhone客户端7楼2018-06-07 23:21
              回复