精华内容
下载资源
问答
  • webdriver定位页面元素的8种方式 find_element_by_id() find_element_by_name() find_element_by_class_name() find_element_by_tag_name() #标签 find_element_by_link_text() #文本链接 find_element_by_partial_...

    webdriver定位页面元素的8种方式

    find_element_by_id()
    find_element_by_name()
    find_element_by_class_name()
    
    find_element_by_tag_name() #标签
    find_element_by_link_text() #文本链接
    find_element_by_partial_link_text()#部分文本链接
    '''以下是重点并且是难点'''
    find_element_by_xpath() #应用很多
    find_element_by_css_selector() 
    

    用法以百度为例,以下全为定位页面元素8种方式的用法:

    <span class="bg s_ipt_wr quickdelete-wrap">
    	<span class="soutu-btn"></span>
    	<input id="kw" name="wd" class="s_ipt" value="" maxlength="255" autocomplete="off">
    	<a href="javascript:;" id="quickdelete" title="清空" class="quickdelete" style="top: 0px; right: 0px; display: none;"></a>
    </span>
    

    find_element_by_id(“kw”)
    find_element_by_name(“wd”)
    find_element_by_class_name(“s_ipt”)
    find_element_by_tag_name(“input”)

    以百度右上角文本链接为例

    <div id="u1">
    	<a href="http://news.baidu.com" name="tj_trnews" class="mnav">新闻</a>
    	<a href="https://www.hao123.com" name="tj_trhao123" class="mnav">hao123</a>
    	<a href="http://map.baidu.com" name="tj_trmap" class="mnav">地图</a>
    	<a href="http://v.baidu.com" name="tj_trvideo" class="mnav">视频</a>
    	<a href="http://tieba.baidu.com" name="tj_trtieba" class="mnav">贴吧</a>
    	<a href="http://xueshu.baidu.com" name="tj_trxueshu" class="mnav">学术</a>
    	<a href="https://passport.baidu.com/v2/?login&amp;tpl=mn&amp;u=http%3A%2F%2Fwww.baidu.com%2F" name="tj_login" class="lb" οnclick="return false;">登录</a>
    	<a href="http://www.baidu.com/gaoji/preferences.html" name="tj_settingicon" class="pf">设置</a><a href="http://www.baidu.com/more/" name="tj_briicon" class="bri" style="display: block;">更多产品</a>
    	<a href="http://www.suoha.com">超级长的一个文本链接啦啦啦啦</a>
    </div>
    

    find_element_by_link_text(“新闻”)
    find_element_by_partial_link_text(“长的一个”)

    <span class="bg s_ipt_wr quickdelete-wrap">
    	<span class="soutu-btn"></span>
    	<input id="kw" name="wd" class="s_ipt" value="" maxlength="255" autocomplete="off">
    	<a href="javascript:;" id="quickdelete" title="清空" class="quickdelete" style="top: 0px; right: 0px; display: none;"></a>
    </span>
    

    find_element_by_xpath(“//[@id=‘kw’]”)
    find_element_by_xpath(’//
    [@id=“kw”]’)
    注:以上两个xpath的用法在Python中外面用了双引号,里面的字符串就要用单引号,外面用了单引号,里面就要用双引号

    find_element_by_xpath(“//*[@name=‘wd’]”)
    find_element_by_xpath(“//input[@maxlength=‘255’]”)
    find_element_by_xpath(“//form[@id=‘form’]/span/input”)
    find_element_by_xpath(“/html/body/div[3]/div/div/div/div/form/span/input”)

    <input id="kw" name="wd"> #需要找到这个元素
    <input id="kw" name="ll">
    <input id="hh" name="wd">
    

    find_element_by_xpath(“//input[@id=‘kw’ and @name=‘wd’]”)

    <span class="bg s_ipt_wr quickdelete-wrap">
    	<span class="soutu-btn"></span>
    	<input id="kw" name="wd" class="s_ipt" value="" maxlength="255" autocomplete="off">
    	<a href="javascript:;" id="quickdelete" title="清空" class="quickdelete" style="top: 0px; right: 0px; display: none;"></a>
    </span>
    

    find_element_by_css_selector("#kw") 在CSS种#代表id
    find_element_by_css_selector("[name=‘wd’]")
    find_element_by_css_selector("[name=wd]")
    find_element_by_css_selector(".s_ipt") 在CSS中.代表class
    以下写路径:
    find_element_by_css_selector(".bg > input")
    find_element_by_css_selector(“span.bg > input#kw”)
    find_element_by_css_selector(“form.form > span.bg > input#kw”)

    在火狐浏览器中使用firebug中的FirePath可以直接生成CSS的元素语法
    高版本的火狐貌似右键复制就可以生成元素语法
    在谷歌中,直接右键复制xpath或者右键复制CSS也可以直接生成元素语法

    展开全文
  • 在使用webdriver进行web自动化测试时,需要定位大量的页面元素,除了使用Firebug和FirePath插件外,可以安装这个火狐插件-WebDriver Element Locator 通过该工具可以方便获取简洁实用的用于webdriver 的xpath定位...

    在使用webdriver进行web自动化测试时,需要定位大量的页面元素,除了使用FirebugFirePath插件外,可以安装这个火狐插件-WebDriver Element Locator

    通过该工具可以方便获取简洁实用的用于webdriver 的xpath定位信息,也能帮助大家理解xpath原理

    具体下载地址:https://addons.mozilla.org/zh-CN/firefox/addon/element-locator-for-webdriv/?src=api

    安装后直接在页面元素上右键即可定位页面元素啦,效果如图


    展开全文
  • webdriver定位页面元素时使用set_page_load_time()和JavaScript停止页面加载 原文:https://my.oschina.net/u/2344787/blog/400507?p={{page}} 引言:  在使用webdriver的get方法打开页面时,可能页面需要加载...

    webdriver定位页面元素时使用set_page_load_time()和JavaScript停止页面加载

    原文:https://my.oschina.net/u/2344787/blog/400507?p={{page}}

     

    引言:

      在使用webdriver的get方法打开页面时,可能页面需要加载的元素较多导致加载时间很长,而时间过长会导致后面的操作无法进行,甚至直接报错;所以在页面加载到一定时间,实际需要定位的元素很大可能上已经加载出来时,需要停止页面的加载,进而进行下面的操作;

      例如:get 汽车之家页面时会等待很长时间,其实页面基本元素都已加载,可进行后续操作

      可以通过set_page_load_time()方法来设定时间,然后捕获timeout异常 并 通过执行Javascript来停止页面加载 window.stop()

    from selenium.common.exceptions import TimeoutException
    
    startTime = time.time()
    print "start time is: %0.3f"%startTime
    driver = webdriver.Firefox()
    # 设定页面加载限制时间
    driver.set_page_load_timeout(30)
    driver.maximize_window()
    
    try:
        driver.get('http://www.autohome.com.cn/')
    except TimeoutException:  
        print('time out after 30 seconds when loading page')
        driver.execute_script('window.stop()') #当页面加载时间超过设定时间,通过执行Javascript来stop加载,即可执行后续动作
    该代码在

     

    转载于:https://www.cnblogs.com/zanjiahaoge666/p/7134526.html

    展开全文
  • Selenium-Webdriver 提供了强大的元素定位方法,支持以下三种方法:单个对象的定位方法,多个对象的定位方法和层级定位 1. 定位单个元素 1 // 对于元素的属性包含 id 的情况适用,推荐使用 2 WebElement we = ...

    Selenium-Webdriver 提供了强大的元素定位方法,支持以下三种方法: 单个对象的定位方法,多个对象的定位方法和层级定位

    1. 定位单个元素

     1 // 对于元素的属性包含 id 的情况适用,推荐使用
     2 WebElement we = drive.findElement(By.id("id"));
     3 // 对于元素的属性包含 name 的情况适用,推荐使用
     4 WebElement we = drive.findElement(By.name("name"));
     5 // 通用定位方式,对于不好定位的元素适用 ,推荐使用
     6 WebElement we = drive.findElement(By.xpath("xpathExpression"));
     7 // 适用于链接类的元素,即 <a> 标签,包含 herf 属性的元素
     8 WebElement we = drive.findElement(By.linkText("linkText"));
     9 // 适用于链接类的元素,模糊匹配,即包含 herf 属性的元素
    10 WebElement we = drive.findElement(By.partialLinkText("linkText"));
    11 // 对于元素的属性包含 class 的情况适用, 处理复合型class(中间有空格的classname)的方法 ,处理方法只选择class属性中的一个值
    12 WebElement we = drive.findElement(By.className("className"));
    13 // 通用定位方式,对于不好定位的元素适用
    14 WebElement we = drive.findElement(By.cssSelector("selector"));
    15 // 通用定位方式,用于层级定位
    16 WebElement we = drive.findElement(By.tagName("tagName"));

    2. 定位多个元素

    findElements()方法可以返回一个符合条件的元素 List 

    1 // 定义了一个集合,将 class 一样的元素一次性定位出来
    2 List<WebElement> elements = driver.findElements(By.className("className"));
    3 // 通过集合的下标进行操作,集合的第一位下标是0 ,参数index 就是下标
    4 elements.get(index).click();

    3. 层级定位

      层级定位的思想是先定位父元素,然后再从父元素中精确定位出其我们需要选取的子元素。层级定位一般的应用场景是无法直接定位到需要选取的元素,但是其父元素比较容易定位,通过定位父元素再遍历其子元素选择需要的目标元素,或者需要定位某个元素下所有的子元素。比较典型的应用是表格的定位。

    1 // 得到 table 元素对象   
    2 WebElement table = driver.findElement(By.id("id"));   
    3 // 得到 table 表中所有行对象,并得到所要查询的行对象。   
    4 List<WebElement> rows = table.findElements(By.tagName("tr")); 
    5 // 定位下拉列表
    6 WebElement select = driver.findElement(By.id("id")); 
    7 // 从下拉列表中查找所有的选项
    8 List<WebElement> option = a.findElements(By.tagName("option"));

     

    转载于:https://www.cnblogs.com/andrew209/p/9011617.html

    展开全文
  • 原创文章地址:http://www.360doc.com/content/15/0915/21/8189294_499385583.shtml
  • selenium webdriver xpath 定位页面元素

    千次阅读 2014-03-28 14:29:43
    selenium webdriver定位页面元素 selenium-webdriver提供了强大的元素定位方法,支持以下三种方法。 单个对象的定位方法多个对象的定位方法层级定位  定位单个元素 在定位单个元素时,selenium-...
  • webdriver 定位表格元素

    2014-05-04 09:08:00
    欢迎光临娇娇家的美衣阁 ... webdriver 定位表格元素 页面如下图 选中此checkbox的方法: click("//tr[@id='datagrid-row-r2-1-0']/td[2]"); 附click方法 public void click(String text){driver.fin...
  • 【selenium学习笔记】webdriver进行页面元素定位 进行Web页面自动化测试,对页面上的元素进行定位和操作是核心。而操作又是以定位为前提的,因此,对页面元素定位是进行自动化测试的基础。 页面上的元素就像人...
  • 自动化测试实施过程中,测试程序中常用的页面操作有三个步骤 1.定位网页上的页面元素,并存储...其中定位页面元素是三步骤的第一步,本篇介绍常用的定位方法   webDriver对象的findElement函数用于定位一个页面元素,fi
  • 而操作又是以定位为前提的,因此,对页面元素定位是进行自动化测试的基础。 页面上的元素就像人一样,有各种属性,比如元素名字,元素id,元素属性(class属性,name属性)等等。webdriver就是利用元素的这些...
  • Python3.x:Selenium中的webdriver进行页面元素定位 页面上的元素就像人一样,有各种属性,比如元素名字,元素id,元素属性(class属性,name属性)等等。webdriver就是利用元素的这些属性来进行定位的。 可以用于...
  • XPath是XML Path的简称,由于HTML文档本身就是一个标准的XML页面,所以我们可以使用XPath的语法来定位页面元素。 假设我们现在以图(1)所示HTML代码为例,要引用对应的对象,XPath语法如下: 图(1) ...
  • 页面元素基操: clear():清除 send_keys(“value”):字母、数字、特殊字符及快捷键 click():点击,例如按钮、超链接、单选框、复选框操作。 Current_url:返回当前(driver浏览器对象所能控制的页面)页面的title,...
  • WebDriver定位元素

    2017-03-03 11:45:00
    selectWindow("null"),返回到windows的主窗体。 verifyTextPrese 验证特定文本,不关心具体的位置 ...一、定位页面元素 Identifier定位 id name Id定位:id Name定位:name 上三种,不依赖UI元素在页面...
  • 元素定位:id与name属性的定位 打开百度,搜索Selenium自学,然后点击搜索按钮,在搜索页面结果按F12,检查按钮点击搜索框 发现其属性id,属性值为”kw”,属性name,属性值为”wd” 接下来在用检查去寻找百度一下...
  • 1.driver.current_url:用于获得当前页面的URL 2.driver.title:用于获取当前页面的标题 3.driver.page_source:...6.driver.find_element_by***** 定位元素,有18种 7.driver.get(url):浏览器加载url。 8.driver.for
  • 本文主要是讲解在web页面中如何定位元素,这是进行...操作这些元素的前期是要定位它们,就是找到它们的位置,所以下面可以利用WebDriver采用几种不同的方式去进行元素定位元素定位方法以及Python中对应的方法 id定位
  • WebDriver API 定位元素

    2020-02-27 21:12:17
    获取页面信息 自定义profile 前言 Selenium是开源的自动化测试框架,通过Selenium可以记录你在浏览器执行的操作,录制并可以导出为Java代码。导出的代码可以执行,以到达复现你对浏览器的操作。代码中最关键的...
  • webdriver定位元素技巧

    2016-09-07 11:03:12
    当使用webdriver编写此脚本的时候,核心就是对元素定位,通常的定位方式有By.id .name .select等等. 在编写页面源代码时,通常会事如下的一种编写格式,ID为固定值时我们可以直接使用By对象的id方法By.id("xxx");...
  • WebDriver定位元素方法

    2016-11-19 21:50:00
    如果把页面上的元素看作人的话,在现实世界如何找到某人呢?方法有三: 一、通过人本身的属性,例如他的姓名,手机号,身份证号,性别,这些可区别他人的属性。在web页面上的元素也有这些属性,例如,id、name、...
  • 转自http://blog.sina.com.cn/s/blog_6966650401012a6u.htmlselenium-webdriver提供了强大的元素定位方法,支持以下三种方法: 单个对象的定位方法 多个对象的定位方法层级定位注意:selenium-webdriver通过find...
  • 官网文档:https://www.selenium.dev/documentation/en/webdriver/ Find 方法大全: webdriver.find_element_by_... 通过CLASS操作元素; <input type="text" name="username" class="inputstyle_m"...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 974
精华内容 389
关键字:

webdriver定位页面元素