driver.implicitly_wait(30)
maximize_window() - 将webdriver正在使用的窗口最大化
quit() 退出驱动并关闭所有关联窗口
refresh() - 刷新当前页面
set_page_load_timeout(time_to_wait) - 给载入页面设置一个超时时间,在抛出错误之前会等待到加载完成
set_script_timeout(time_to_wait) - 在一个 execute_async_script
调用期间,设置脚本等待的时间
set_window_position(x,y,windowHandle='current') - 给页面设置x,y位置
set_window_size(width,height,windowHandle='current') - 给页面设置宽高
start_client() - 在新会话开启之前调用,这个方法可以重载来定制启动行为
start_session(desired_capabilities, browser_profile=None) - 以期望的性能来创建一个新会话
browser_name - 要请求的浏览器的名字
version - 要请求的浏览器版本
platform - 浏览器平台
javascript_enabled - 新会话是否支持js
* browser_profile - 仅在请求Firefox浏览器时使用,selenium.webdriver.firefox.firefox_profile.FirefoxProfile 对象对象
stop_client() - 执行一个退出命令时调用。这个方法可以重写,自己定制关闭时的行为
switch_to_active_element() - 不推荐使用 driver.switch_to.active_element
switch_to_alert() - 不推荐使用 driver.switch_to.alert
switch_to_default_content() - 不推荐使用 driver.switch_to.default_content
switch_to_frame(frame_reference) - 不推荐使用 driver.switch_to.frame
switch_to_window(window_name) - 不推荐使用 driver.switch_to.window
application_cache - 返回一个 ApplicationCache 对象 来和 浏览器应用缓存交互
current_url - 当前页的url
current_window_handle - 当前窗口的句柄
desired_capabilities - 返回当前驱动正在使用的 '期望性能'
file_detector
log_types - 返回可用的日志类型list
mobile
name - 返回当前实例的底层浏览器名
orientation - 获取当前设备的适应情况
page_source - 获取当前页面的来源
switch_to
title - 当前页面的标题
window_handles - 返回当前会话内所有窗口的资源句柄
class selenium.webdriver.remote.webelement.WebElement(parent,id_,w3c=False)
代表一个DOM元素。通常所有和文档互动的有趣操作都要通过这个接口执行。
所有的方法调用都会做一个 '新鲜检查' 来确认引用的元素仍然可用,这本质上确定了这个元素是否还与DOM相连。如果检测失败,会抛出
StaleEleementReferenceException
异常,并且下面的所有对这个接口的调用都会失败
(拥有find_element_by_*所有方法,请参看此处)
get_attribute(name) - 返回元素指定的属性
这个方法首先会尝试返回元素指定的属性,如果属性不存在,它会返回和属性名相同的字符串,如果没有属性是这个名字,返回None
。
被认为是真假的值会返回布尔类型,其他所有的非None
值都会以字符串的形式返回。属性不存在,返回None
# Check if the "active" CSS class is applied to en element
is_active = "active" in target_element.get_attribute("class")
is_displayed() - 元素对用户是否可见
is_enabled() - 元素是否可用
is_selected() - 元素是否被选中,可用来检测单选或者复选按钮是否被选中
screenshot(filename) - 获取当前元素的截图,有IOError会返回False
,文件名要包含完整路径
send_keys(*value) - 模拟向元素输入
使用这个方法发送简单的按键时间或者填充表单字段:
form_textfiled = driver.find_element_by_name("username")
form_textfiled.send_keys("admin")
这个方法还可以用来设置文件:
file_input = driver.find_element_by_name('profilePic')
file_input.send_keys('path/to/profilepic.gif')
submit() - 提交表单
value_of_css_property(property_name) - CSS属性的值
id - selenium使用的内部ID
这个主要是内部使用,简单的使用案例是用来做类似于检测两个元素是否关联到相同的元素上,可以用==
来比较:
if element1 == element2:
print("These 2 are equal")
location - 元素在可渲染的画布上的位置
location_once_scrolled_into_view
这个属性改变不会发出警告,用这个来检查元素在屏幕的位置以方便我们点击它,这个方法可能造成元素滚动到视图里。
返回屏幕左上角的位置,元素不可见返回None
parent - WebDriver实例的内部引用,元素是从哪里发现的
rect - 元素尺寸和位置的dict
screenshot_as_base64 - 当前元素截图的base64编码字符串
screenshot_as_png - 当前元素截图的二进制数据
size - 元素的尺寸
tag_name - 元素的标签名
text - 元素的文本
class selenium.webdriver.support.select.Select(webelement)
deselect_all() - 清除所有的选中输入。仅当选择项支持多选的时候可用,如果不支持多选会抛出NotImplementedError
。
deselect_by_index(index) - 取消指定索引的选项的选中。这个方法会检查index
属性,而不仅仅是计数
deselect_by_value(value) - 取消所有选项的值匹配的选中状态。
意思就是,当给出一个'foo'值时,会取消选中一个类似这样的选项:
<option value="foo">Bar</option>
deselect_by_visible_text(text) - 取消选中所有文本匹配的选项
给出'Bar'时,匹配:
<option value="foo">Bar</option>
select_by_index(index)
select_by_value(value)
select_by_visible_text(text)
上述三个和取消选中用法一样,操作由取选变成选中
all_selected_options - 返回这个选择标签的所有选中选项list
first_selected_option - 选择标签的的第一个选中项(或者一个正常选择框的当前选中项)
options - 选择标签的所有选项list
class selenium.webdriver.support.wait.WebDriverWait(driver, timeout, poll_frequency=0.5, ignored_exceptions=None)
until(method, message='')
调用驱动提供的方法名当参数,直到方法返回值 不是 False
until_not(method, message='')
调用驱动提供的方法名当参数,直到方法返回值 是 False
class selenium.webdriver.support.color.Color(red,green,blue,alpha=1)
颜色变换支持类:
from selenium.webdriver.support.color import Color
print(Color.from_string('#00fff33').rgba)
print(Color.from_string('rgb(1,255,3)').hex)
print(Color.from_string('blue').rgba)
static from_string(str)
预期条件支持
class selenium.webdriver.support.expected_conditions.alert_is_present
预期出现一个弹框
class selenium.webdriver.support.expected_conditions.element_located_selection_state_to_be(locator, is_selected)
预期定位一个元素并且检查选中状态是否符合预期,locator
是一个(by,path)的tuple,is_selected
是布尔值
class selenium.webdriver.support.expected_conditions.element_located_to_be_selected(locator)
预期一个定位的元素是选中的
class selenium.webdriver.support.expected_conditions.element_selection_state_to_be(element,is_selected)
预期元素是否选中
class selenium.webdriver.support.expected_conditions.element_to_be_clickable(locator)
预期一个元素是否可见可用,以便可以点击它
class selenium.webdriver.support.expected_conditions.element_to_be_selected(element)
预期一个元素是选中的
class selenium.webdriver.support.expected_conditions.frame_to_be_available_and_switch_to_it(locator)
检查框架是否可以被切换,如果可以,那么就切换到这个框架
class selenium.webdriver.support.expected_conditions.invisibility_of_element_locator(locator)
预期元素不可见或者不在DOM上,locator
定位元素
class selenium.webdriver.support.expected_conditions.presence_of_all_elements_located(locator)
预期至少有一个元素出现在web页面上,locator
是用来寻找已经被定位了的WebElements list
class selenium.webdriver.support.expected_conditions.presence_of_element_located(locator)
预期元素正在页面的DOM上,这不意味着元素是可见的。
class selenium.webdriver.support.expected_conditions.staleness_of(element)
等待元素不再附在DOM上,element
是要等待的元素,如果元素仍然在DOM上返回False
,否则返回True
class selenium.webdriver.support.expected_conditions.text_to_be_present_in_element(locator, text_)
预期给定的文本会出现在指定的元素上
class selenium.webdriver.support.expected_conditions.text_to_be_present_in_element_value(locator, text_)
预期给定的文本会出现在指定的元素的value上
class selenium.webdriver.support.expected_conditions.title_contains(title)
预期标题包含一个指定的字符串(大小写敏感),匹配返回True,否则返回False
class selenium.webdriver.support.expected_conditions.title_is(title)
预期标题完全匹配一个字符串
class selenium.webdriver.support.expected_conditions.visibility_of(element)
预期已经在DOM上的一个元素是可见的。可见不仅仅表示元素是显示的,而且长宽都要大于0.参数_element_是一个WebElement
。如果元素可见,则返回这个元素对象
class selenium.webdriver.support.expected_conditions.visibility_of_element_located(locator)
和visibility_of
类似,不同的是通过一个定位器来定位元素。如果元素被定位到并且可见,则返回这个元素对象