webui自动化EC模块常用


)

EC模块基本用法

EC全称:expected_conditions(预期条件)。

Selenium的expected_conditions模块提供了一些方法,可以等待与其条件成立时再执行后续的操作。

这个模块的作用是确保代码在执行之前,等待页面或元素达到某种状态或条件。

以下是expected_conditions模块的几个常用方法及其作用:

  • presence_of_element_located: 等待指定元素出现在DOM中。
  • visibility_of_element_located: 等待指定元素可见。
  • element_to_be_clickable: 等待指定元素可以被点击。
  • text_to_be_present_in_element: 等待指定元素包含指定文本。
  • title_contains: 等待页面标题包含指定文本。
  • alert_is_present: 等待页面弹出警告框。

通过使用这些方法,可以使自动化测试更加稳定和可靠,避免因为页面加载时间过长或元素未加载完成而导致的错误和异常。

# 导入EC
from selenium.webdriver.support import expected_conditions as EC

示例代码:显示等待

def ele_walt(driver):
    """
    显示等待
    :param driver:
    :return:
    """
    wait = WebDriverWait(driver, 2)
    loc = ("id", "imgSpan")
    text = '点击上传'
    点击上传元素 = wait.until(EC.text_to_be_present_in_element(loc, text))
    if 点击上传元素:
        return True

    
    
 def 显示等待查找元素(driver,loc,timeout=10,po;;=0.5):
     return WebDriverWait(self.driver, timeout=timeout, poll_frequency=poll).until(EC.presence_of_element_located(*loc))

EC常用方法–判断元素是否存在

原文链接:https://blog.csdn.net/lovedingd/article/details/77198263
isEnable()isDisplayed()isSelected()
1、以上三个为布尔类型的函数
2、isEnable()用于存储input、select等元素的可编辑状态,可以编辑返回true,否则返回false
3、isDisplayed()这个有点陌生,在大神写的脚本看到几次不知道何用意先不管,本身这个函数用于判断某个元素是否存在页面上(这里的存在不是肉眼看到的存在,而是html代码的存在。某些情况元素的visibility为hidden或者display属性为none,我们在页面看不到但是实际是存在页面的一些元素)
4、isSelected(),很显然,这个是判断某个元素是否被选中。例如

element=driver.find_element_by_name("XXX")

element.is_enabled() #是否可以编辑,或者按钮是否可以点击

element.is_displayed()#判断元素是否显示

element.is_selected()# 判断元素是否选中状态
driver.find_element_by_id('kw').is_displayed()   #查看元素是否可见
 
EC.presence_of_element_located((By.ID,"kw"))   #查看某个元素是否存在
 
EC.element_to_be_clickable()         #查看元素是否可点击
 
EC.element_located_to_be_selected((By.ID,"kw")) #某个预期元素是否被选中
 

    补充:
 
#frame可见并切换到该frame上
EC.frame_to_be_available_and_switch_to_it
#元素可以点击,常用于按键
EC.element_to_be_clickable
#元素出现,只要一个符合条件的元素加载出来就通过
EC.presence_of_element_located
#元素出现,须所有符合条件的元素都加载出来,这个基本上就是你爬取的最主要内容了
EC.presence_of_all_elements_located
#判断某段文本是否出现在某元素中,常用于判断输入页数与实际高亮页数是否一致
EC.text_to_be_present_in_element
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 可以参考以下步骤:1. 安装Selenium库:使用命令“pip install selenium”安装Selenium库。2. 导入Selenium:使用Python代码“from selenium import webdriver”导入Selenium模块。3. 创建WebDriver:使用命令“driver = webdriver.Chrome()”创建一个WebDriver对象。4. 打开登录页面:使用命令“driver.get(url)”打开登录页面。5. 填写表单:使用命令“driver.find_element_by_name('username').send_keys('username')”填写登录表单。6. 提交表单:使用命令“driver.find_element_by_name('submit').click()”提交登录表单。7. 登录成功:登录成功后,WebDriver对象会跳转到登录后的页面。 ### 回答2: 下面是使用Python封装webUI自动化登录功能的示例代码: ```python from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC class WebUILogin: def __init__(self, url, username, password): self.url = url self.username = username self.password = password self.driver = webdriver.Chrome() # 使用Chrome浏览器,需要提前安装Webdriver def login(self): self.driver.get(self.url) WebDriverWait(self.driver, 10).until(EC.presence_of_element_located((By.ID, "username"))) # 等待用户名输入框出现 username_input = self.driver.find_element(By.ID, "username") password_input = self.driver.find_element(By.ID, "password") login_button = self.driver.find_element(By.ID, "login-btn") username_input.send_keys(self.username) password_input.send_keys(self.password) login_button.click() def close(self): self.driver.quit() # 使用示例 url = "http://example.com/login" # 替换为你的登录页面的URL username = "your_username" # 替换为你的用户名 password = "your_password" # 替换为你的密码 web_ui_login = WebUILogin(url, username, password) web_ui_login.login() # 执行其他需要登录后才能操作的代码 web_ui_login.close() ``` 这个示例演示了使用selenium库实现webUI自动化登录的功能。首先创建一个`WebUILogin`类,类的构造函数接收登录URL、用户名和密码,创建一个Chrome浏览器的实例。`login`方法会打开登录页面,等待用户名输入框出现,然后将用户名和密码输入相应的输入框,并点击登录按钮完成登录操作。`close`方法用于关闭浏览器。 你需要将示例代码中的URL、用户名和密码替换为你的登录信息,并根据自己的需求进行修改和扩展。 ### 回答3: 下面是用Python封装Web UI自动化登录功能的代码: ```python from selenium import webdriver from selenium.webdriver.common.keys import Keys def login(username, password): # 创建浏览器驱动对象 driver = webdriver.Chrome() # 打开登录页面 driver.get("https://example.com/login") # 找到用户名和密码的输入框,并输入相应的值 username_field = driver.find_element_by_name("username") username_field.send_keys(username) password_field = driver.find_element_by_name("password") password_field.send_keys(password) # 模拟键盘的回车键,实现提交表单 password_field.send_keys(Keys.RETURN) # 自动登录后的下一步操作... # 关闭浏览器驱动 driver.quit() ``` 以上代码使用了Selenium库,通过`webdriver.Chrome()`创建了一个浏览器驱动对象。然后使用`driver.get()`打开登录页面。接着,通过`driver.find_element_by_name()`找到用户名和密码的输入框,并使用`send_keys()`方法输入相应的值。最后,使用`send_keys(Keys.RETURN)`模拟键盘的回车键,实现提交表单。 你可以调用`login()`函数,并传入用户名和密码作为参数,如`login("username", "password")`,来自动完成登录操作。登录成功后,你可以在函数中添加相应的下一步操作。最后,调用`driver.quit()`关闭浏览器驱动。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

识途老码

赞赏是第一生产力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值