Python3+Selenium4+Edge IE模式,自动化操作问题解决一例

开始在公司负责自动化测试了,手头一个公网设备web地址,一个内网设备web地址,刚开始研究没几天,把登录界面的自动化操作弄出来了,因为公司对设备的测试环境是edge的ie模式,故通过ie模式来搞自动化。

在公网那个设备的web上,从调用edge ie模式打开地址,到语言下拉框选择,再到自动填充用户名密码按登录,一套已经成功,但是内网设备那个,pycharm调试始终卡在一句driver.find_element(By.ID, 'language')上面,一直是运行中,不进行也不报错,在家里连公网那个设备地址,和在公司连内网那个地址一样,都卡在第一个driver.find_element不报错不停止,除非手动停掉。

查了不少办法,都不行,包括Gevent兼容也不行(这个打开的话,driver.get地址那里就卡死了),最后怀疑是ide里环境问题,改用notepad++调试,用了notepad++,果然不卡driver.find_element那里了,有问题的web地址显示了个报错,NoSuchElementException:AttributeError: 'list' object has no attribute 'tag_name'

把这个报错上网搜索,第一个结果就是说去internet选项——安全——受信任的站点那里让检查下

我在单位电脑进去“站点”这里一查,里面只有那个公网设备ip,没有内网那个ip,再远程到家去查,里面连公网那个ip都没有,于是恍然大悟!

都加进去后,不论在公司公网设备,公司内网设备,家里公网设备,都能正常进行自动化了。

  • 8
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python+Selenium+pytest+PO模式是一种常用的Web UI自动化测试框架,下面是一些基本的步骤: 1. 安装pytest和Selenium:使用pip install pytest selenium命令进行安装。 2. 创建pytest测试用例:创建一个py文件,使用pytest框架编写测试用例,可以使用Selenium进行web页面的操作和数据的验证。 3. 创建PO模式的页面对象:使用Page Object模式构建页面对象,将页面的元素和操作封装在一个类中,方便管理和维护。 4. 运行pytest测试:使用pytest运行测试用例,并查看测试报告。 5. 使用pytest插件:pytest提供了许多插件,例如pytest-html、pytest-xdist等,可以用来生成HTML测试报告、运行分布式测试等。 下面是一个简单的示例代码: ```python # conftest.py文件 from selenium import webdriver import pytest @pytest.fixture(scope='module') def driver(): driver = webdriver.Chrome() yield driver driver.quit() # test_login.py文件 from pages.login_page import LoginPage def test_login(driver): login_page = LoginPage(driver) login_page.open() login_page.input_username('test') login_page.input_password('test123') login_page.click_submit() assert login_page.get_login_result() == '登录成功' # login_page.py文件 from selenium.webdriver.common.by import By class LoginPage: url = 'http://localhost/login' def __init__(self, driver): self.driver = driver def open(self): self.driver.get(self.url) def input_username(self, username): self.driver.find_element(By.ID, 'username').send_keys(username) def input_password(self, password): self.driver.find_element(By.ID, 'password').send_keys(password) def click_submit(self): self.driver.find_element(By.ID, 'submit').click() def get_login_result(self): return self.driver.find_element(By.ID, 'result').text ``` 在上面的示例中,我们使用了pytest的fixture机制来管理WebDriver对象的生命周期,使用PO模式的页面对象来封装登录页面的元素和操作。我们可以通过执行pytest test_login.py命令来运行测试,并生成测试报告。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值