• 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.lang.IllegalStateException: getOutputStream() has already been called for this response
    html5之table嵌入form表单布局(务必注意:table标签必须在form表单内部,不能再form表单外部!)
    两张图搞清楚Eclipse上的Web项目目录
    使用VS 2019发布.net core程序并部署到IIS的最新教程
    国外便宜虚拟主机有哪些?
    怎样收用电汇来收adsense的广告费呢
    程序员同性交友网站github在国内不能访问了
    直接引用MrAdvice.dll文件不能实现AOP拦截,教你1分钟解决这个问题
    VS2019打包WPF安装程序最新教程
    通过VS2017发布.net core程序并使用Web 部署到远程服务器最新教程
  • 原文地址:https://www.cnblogs.com/gongbo/p/5176865.html
Copyright © 2020-2023  润新知