Selenium webdriver常用属性和方法

Selenium webdriver常用属性和方法,第1张

属性                                                       属性描述

drivername                                          浏览器名称

drivercurrent_url                                  当前url

drivertitle                                              当前页面标题

driverpage_source                               当前页面源码

drivercurrent_window_handle              窗口句柄

driverwindow_handles                          当前窗口所有句柄

方法                                                              方法描述

driverback()                                                浏览器后退

driverforward()                                            浏览器前进

driverrefresh()                                             浏览器刷新

driverclose()                                                关闭当前窗口

driverquit()                                                   退出浏览器

driverswitch_toframe()                                切换到frame

driverswitch_toalert()                                  切换到alert

driverswitch_toactive_element()                 切换到活动元素

源码:

from seleniumimport webdriver

from timeimport sleep

class Testcase(object):

def __init__(self):

selfdriver = webdriverChrome()

selfdriverget('>

首先来说你的代码不能正确执行的最终原因是下面这两个函数没有正确调用,这两个函数都是有参数的:

你第一个函数的调用就是正确的:

-----

再者说, find_XXX函数加了下划线并不代表它们不能用, 只是不建议用了,而且元素定位和网址请求的一般用法还不太一样,

网址请求的用法一般是:  driverget('>

元素定位用法一般是: name = driverfind_element_by_id('kw')

可以看到上面两个的区别是网址请求前面没有变量, 而元素定位前面是有变量的, 因为你元素定位之后你还要使用该变量进行下一步的 *** 作,如点击等,如果你没有定义变量,元素定位完成了你想对这个元素进行 *** 作要怎么办(单个元素定位可以通过下划线,_,来代表变量,多个就没法弄了,这句话不理解你可以忽略)

所以下面把你的代码修改一下:

上面代码其实没改啥,就是给元素定位加了一个变量input, 最后那句是我自己加上去的, 意思说白了就是往百度搜索输入框中输入内容 "hello friend!",加上这句你能看到效果

就上面的代码你仍然还是会看到find_element_by_id会有删除线, 但没有关系不影响使用(有删除线只是告诉你这种用法被废弃了, 或者你也可以理解不推荐使用这种用法了)

-----

最后说一下推荐用法,

其实和上面所讲的废弃的方法差不多,与上面的方法相比,有两点不同

多导入了一个By包,用来指定元素定位的种类(一会儿举例子就知道怎么用了)

元素定义的方法统一为find_element(),具体使用啥定位放在了函数中作为第一个参数

下面把题主的例子用推荐的方法写一下:

通过上图可以看出,第二行是多出来的,用来导入By包,然后就是元素定位的写法,方法名只剩一个find_element,而具体导找元素定位的方式ByID放到了方法中作为其第一个参数, 第二个参数为具体要查找的内容

-----

总结: 上面总共给出了两种元素定位的写法, 后一种写法并不是新版本中才有的, 以前的版本中两种方法就都有, 猜测新版本中为了让大家统一使用后一种用法或是以后只维护后一种写法的代码了,所以才把头一种元素定位的方法给加上了删除线,既然加上了删除线可能在以后的某个版本就会不支持这种写法了,所以推荐题主还是使用后一种写法

-----

扩展阅读:

当前By包中支持通过以下几种方法进行定位:

=====

希望可以帮到题主, 欢迎追问

selenium显示等待和隐式等待的区别

1、隐式等待

隐式等待,就是在创建driver时,设置全局元素等待超时时间。当要查找元素,而这个元素没有马上出现时,告诉 WebDriver 查询 Dom 一定时间,实际上浏览器会在你自己设定的时间内不断的刷新页面去寻找我们需要的元素。默认值是 0,但是设置之后,这个时间将在WebDriver 对象实例整个生命周期都起作用。(处理 Table 对象时,需要将此设置为默认值)

设置等待时长为10秒,首先这10秒并非一个固定的等待时间,它并不影响脚本的执行速度。其次,它并不针对页面上的某一元素进行等待。当脚本执行到某个元素定位是,如果元素可以定位,则继续执行,如果元素定位不到,则它将以轮询的方式不断地判断元素是否被定位到。假设在第六秒定位到了元素则继续执行,若直到超出设置的时长10秒还没有定位到元素,则抛出异常。

2、显示等待

每隔一段时间检测一次当前页面元素是否存在,如果超过设置时间检测不到则抛出异常(TimeoutException)

WebDriverWait(driver, timeout, poll_frequency=05, ignored_exceptions=None)

driver:浏览器驱动

timeout:最长超时时间,默认以秒为单位

poll_frequency:检测的间隔(步长)时间,默认为05S

ignored_exceptions:超时后的异常信息,默认情况下抛NoSuchElementException异常

WebDriverWait()一般由until()或 until_not()方法配合使用

until(method, message=' '):调用该方法提供的驱动程序作为一个参数,直到返回值为True

until_not(method, message=' '):调用该方法提供的驱动程序作为一个参数,直到返回值为False

以上就是关于Selenium webdriver常用属性和方法全部的内容,包括:Selenium webdriver常用属性和方法、关于Python selenium,无法使用,find_element求大神指点、selenium显示等待和隐式等待的区别等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9628133.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存