其他测试框架 求帮忙看看 playwright 相关的问题 另外求一个 playwright 的测试交流群~谢谢!!

花木木 · 2023年11月09日 · 最后由 ys-xmgg 回复于 2023年11月14日 · 6520 次阅读

用 playwright 写自动化,遇到一个下拉框选择省市区,用过了 click,select_option,query_selector,fill 都无法点击到那个元素(css 和 absxpath 每次都是变的),求各位大佬帮忙指指路,可能涉及我的知识盲区了,另外最近用 playwright 一直觉得有点小众,问了几个朋友都没用过的,导致出了问题只能自己慢慢查,希望能有个 playwright 的自动化测试群。

最佳回复

可以用 playwright codegen 录制生成脚本文件,看下用的的什么方法

共收到 14 条回复 时间 点赞

看下代码

古一 回复

@allure.step("选择城市:安徽省合肥市蜀山区")
def click_operating_click_city(self):
self.queryclick(self.operating_click_city)
operating_area = '//span[text()="完成"]/../../../../../../../div[6]/div/d1v/d1v/ul/span[text()="安徽省"]'
operating_click_city = ".is-required .el-cascader .el-input
_inner"

可以用 playwright codegen 录制生成脚本文件,看下用的的什么方法

花木木 回复

使用相对路径

//span[text()="内蒙古自治区"]

我前几天刚用过,
选择省,市、区,主要还是参照了 codegen 自动生成的代码。

def fill_addr(self, province, city, distict):
self.addr.click()
self.page.get_by_text(province, exact=True).hover()
self.page.get_by_text(city, exact=True).hover()
self.page.get_by_text(distict, exact=True).click()

调用:self.fill_addr("江苏省", "南京市", "雨花台区")

找个插件 copy 下他的定位。😂 这种小事还要自己手动定位,没意思。知道怎么玩就行了

用 pw 最好用它提供的定位方式,css,xpath 是最后才考虑的,这个用 get_by_role 应该很容易定位

花木木 回复

用它的写法可以吗

鼠标移开下拉框就变动的话,对于这种多个下拉框需要先用鼠标悬浮,确保元素是显性的吧

12楼 已删除

edge 浏览器有个 playwright 的路径定位插件可以使用

self.page.get_by_role("dialog", name="menuitem").get_by_text(province,exact=True)

可以使用 name 定位试试看

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册