zoukankan      html  css  js  c++  java
  • selenium(一):元素定位

    selenium是一种进行自动化测试的工具,在python也可以使用来进行自动化测试。

    selenium可以肤浅的理解为:一个网页,模拟人的各种操作,比如点击按钮,输入信息等等。我们今天就来说说如何定位我们要点击的按钮,或者是要输入信息的信息框

    -----------------------------------------------------------------------------------------------------

    browser.find_element_by_css_selector()
    这个经常用到:CSS是一种描述html和xml的语言,我觉得用这种方式定位元素最方便,因为查找元素的CSS位置很方便,只要打开浏览器,在我想要的元素位置点击右键,审查元素,然后在firefox浏览器的上端,Google chrome浏览器的下端,就会出现元素的CSS代码,直接复制这个,就可以使用了
    <input id="kw" class="s_ipt" type="text" maxlength="100" name="wd" autocomplete="off">
    ---------------------------------------------------------------------------------------------------
    browser.find_element_by_id()
    这个就是网页查看源代码,我们在源代码中看到的那个id
    ---------------------------------------------------------------------------------------------------
    browser.find_element_by_tag_name()
    browser.find_element_by_tag_name("input")
    ---------------------------------------------------------------------------------------------------
    browser.find_element_by_class_name()
    browser.find_element_by_class_name("s_ipt")
    ---------------------------------------------------------------------------------------------------
    browser.find_element_by_link_text()
    ok = webdriver.Firefox()
    ok.get("http://www.baidu.com")
    ok.find_element_by_link_text("贴吧").click()
    ---------------------------------------------------------------------------------------------------
    browser.find_element_by_name()
    browser.find_element_by_name("wd")
    ---------------------------------------------------------------------------------------------------
    browser.find_element_by_partial_link_text()
    ok = webdriver.Firefox()
    ok.get("http://www.baidu.com")
    ok.find_element_by_partial_link_text("贴").click()
    ---------------------------------------------------------------------------------------------------
    browser.find_element_by_xpath()
    ok = webdriver.Firefox()
    ok.get("http://www.baidu.com")
    ok.find_element_by_xpath("//input[@class='s_ipt']").send_keys(u"你好")
    ok.find_element_by_xpath("//input[@type='submit']").click()
    ---------------------------------------------------------------------------------------------------

    如果要寻找一类元素,我们就用到find_elements方法,这个方法会返回一个可叠代的list.

    由于加载需要时间,所以当我们发送一个请求,然后需要在新出现的页面上处理元素的时候,就有可能由于没有完成加载而出现问题,这个时候,我们可以设置等待时间,但我觉得这样不好,我们可以用一个无限循环体来处理这个问题,例如:
    while True:
    try:
    browser.find_element_by_css_selector("input.btn").click()
    except:
    print "input"
    else:
    break




  • 相关阅读:
    JAVA学习每日日报 7.6
    【刷题-LeetCode】203. Remove Linked List Elements
    【机器学习】树模型
    【刷题-LeetCode】202. Happy Number
    【刷题-LeetCode】201 Bitwise AND of Numbers Range
    【刷题-LeetCode】200 Number of Islands
    【刷题-LeetCode】199 Binary Tree Right Side View
    【刷题-LeetCode】198 House Robber
    从零学python——python的数据类型介绍
    从零学python——python的基本图形绘制以及基本语法
  • 原文地址:https://www.cnblogs.com/gongbo/p/5176865.html
Copyright © 2011-2022 走看看