如何使用DrissionPage点击type为search的输入框?
解决DrissionPage点击激活搜索输入框的问题
方法1:使用DrissionPage原生聚焦+点击
DrissionPage的元素对象自带focus()方法,无需用JS实现,直接结合click()调用即可:
from DrissionPage import ChromiumPage page = ChromiumPage() # 定位type为search的输入框 search_input = page.ele('type:search') # 先聚焦再点击,模拟手动操作流程 search_input.focus() search_input.click()
方法2:在DrissionPage中执行JS脚本
如果原生方法失效,可通过DrissionPage的run_js()方法执行JS,用法和Selenium的execute_script类似:
# 传入元素对象执行聚焦+点击 page.run_js('arguments[0].focus(); arguments[0].click();', search_input) # 也可直接在JS里定位元素执行 page.run_js('document.querySelector("input[type=search]").focus(); document.querySelector("input[type=search]").click();')
方法3:带偏移量的精准点击
部分输入框需要点击特定区域才会激活,可给click()方法传入偏移参数模拟真实点击位置:
# 点击元素左上角偏移5x5像素的位置(避开可能的遮罩层) search_input.click(offsets=(5, 5))
内容的提问来源于stack exchange,提问作者tsvetomirm
相关产品推荐
相关产品推荐

