前言
遇到输入框是弹出日历控件,选一个日期的这种场景,可以直接在输入框输入内容。如果输入框是readonly的时候,可以用js改变输入框的属性
日历控件
如果输入框是日历控件
先看能不能直接输入一个日期,如果能直接输入的情况,就不用点开了
代码示例
from playwright.sync_api import sync_playwright
with sync_playwright() as p:
browser = p.chromium.launch(headless=False)
context = browser.new_context()
page = context.new_page()
page.goto('http://124.70.221.221:8200/users/login/')
page.locator('#username').fill('123@qq.com')
page.locator('#password_l').fill('123456')
page.locator('#jsLoginBtn').click()
page.goto('http://124.70.221.221:8200/users/userinfo/')
# 日历控件直接输入
page.locator('#date_day').fill('2021-04-01')
page.pause()
readonly 的日历控件
有些日历控件是 readonly 属性,也就是不能直接输入的
这种情况先要执行JavaScript 去掉元素的 readonly 属性,再输入
JavaScript 操作日历控件
from playwright.sync_api import sync_playwright
with sync_playwright() as p:
browser = p.chromium.launch(headless=False)
context = browser.new_context()
page = context.new_page()
page.goto('http://124.70.221.221:8200/users/login/')
page.locator('#username').fill('123@qq.com')
page.locator('#password_l').fill('123456')
page.locator('#jsLoginBtn').click()
page.goto('http://124.70.221.221:8200/users/userinfo/')
# 去掉元素的readonly属性
js1 = 'document.getElementById("birth_day").removeAttribute("readonly");'
page.evaluate(js1)
# 直接给输入框赋值
js2 = 'document.getElementById("birth_day").value="2021-04-01";'
page.evaluate(js2)
page.pause()
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.fwqtg.net
1.剪切板组件,复制文本:vue-clipboard3 npm install –save vue-clipboard3 import useClipboard from ‘vue-clipboard3’; const { toClipboard } = u…