isEnable()、isDisplayed()和isSelected()
1、以上三个为布尔类型的函数
2、isEnable用于存储input、select等元素的可编辑状态,可以编辑返回true,否则返回false
3、isDisplayed()这个有点陌生,在大神写的脚本看到几次不知道何用意先不管,本身这个函数用于
判断某个元素是否存在页面上(这里的存在不是肉眼看到的存在,而是html代码的存在。某些情况元
素的visibility为hidden或者display属性为none,我们在页面看不到但是实际是存在页面的一些元素)
4、isSelected(),很显然,这个是判断某个元素是否被选中。例如
页面展示如下:
html代码如下:
java判断元素是否被选中:
WebElement ele=driver.findElement(By.xpath("//*[@id='productAttributeType']/option[3]")); //获得“数字”这个元素
Boolean flag=ele.isSelected(); //判断“数字”元素是否选中,将状态赋给flag
System.out.println("元素是否选中?"+flag);
打印结果:
元素是否选中?true
is_displayed和is_selected
is_displayed():判断元素是否显示
is_selected():判断元素是否选中状态
以百度登录为例,脚本验证登录页面“下次自动登录”默认勾选状态
代码实现
代码
# coding:utf-8
from selenium import webdriver
import time
browser = webdriver.Chrome()
browser.get("https://www.baidu.com/")
browser.maximize_window()
time.sleep(1)
browser.find_element_by_xpath("//div[@id='u1']/a[@name='tj_login']").click() # 找到登录按钮并点击
time.sleep(1) # 这里必须要sleep一下,点击后,弹框显示有点儿延迟的,否则会导致定位不到元素,一般定位不到元素首先考虑加个睡眠时间试试
# is_displayed():判断元素是否显示,结果为一个布尔值,True或False
real_display = browser.find_element_by_id("TANGRAM__PSP_10__footerULoginBtn").is_displayed()
if real_display:
browser.find_element_by_id("TANGRAM__PSP_10__footerULoginBtn").click() # 在登录的弹框里点击用户名密码登录
# is_selected():判断元素是否被选中,结果为一个布尔值,True或False
if browser.find_element_by_xpath("//p[@id='TANGRAM__PSP_10__memberPassWrapper']/input").is_selected():
print("默认已选中...")
else:
print("默认未选中...")