selenium2 页面元素
class selenium.webdriver.remote.webelement.WebElement(parent,id_,w3c=False)
代表一个DOM元素。通常所有和文档互动的有趣操作都要通过这个接口执行。
所有的方法调用都会做一个 '新鲜检查' 来确认引用的元素仍然可用,这本质上确定了这个元素是否还与DOM相连。如果检测失败,会抛出 StaleEleementReferenceException
异常,并且下面的所有对这个接口的调用都会失败。
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 - 元素的文本