playwright元素操作:file、type、click
定位到元素后,最多得操作就是点击元素或输入文本,点击可以使用click来实现。输入文本可以使用fill和type来实现。
click()点击:
page.get_by_text('登录',exact=True).click() #exact=True表示精确匹配
fill()输入:
page.locator("input[name=\"password\"]").fill("123456") # 定位name=password的元素,输入字符串123456
type()输入:
page.locator("input[name=\"password\"]").type("123456") # 定位name=password的元素,输入字符串123456
page.locator("input[name=\"password\"]").type("123456",delay=200) # 定位name=password的元素,输入字符串123456, delay=200每输入一个字符间隔0.2秒
注:type() 方法是字符一个个的输入,模拟输入的真实操作,可以发出所有必要的键盘事件,所有keydown, keyup,keypress事件就位,甚至可以指定delay按键之间的可选操作来模拟真实的用户行为。大多数时候,page.fill()会正常工作。如果页面上有特殊的键盘处理,需要键入字符可以使用type()。
还可以在fill()和click()中定位元素
page.fill('#username', 'test') #定位id=username的元素,输入test
page.click('//*[@id="s-top-left"]') @ # 点击id=s-top-left的元素
page.click("text=新闻") @ # 点击包含新闻的元素
page.click("text='新闻'") @ # 点击等于新闻的元素
这里需要注意,以上两种定位方式只可以使用以下四种定位方式:
1.css 选择器: #user (#代表id,如果是name,page.locator(‘[name=“password”]’,如果是class用.代表class)
2.xpath 语法定位://*[@id=“su”]
3.text 文本选择器:text=用 户 名