从 select2 中使用 python 选择一个选项并填写 Web 表单
Posted
技术标签:
【中文标题】从 select2 中使用 python 选择一个选项并填写 Web 表单【英文标题】:Select an option using python from select2 and fill web form 【发布时间】:2021-04-19 23:20:03 【问题描述】:我有这个来自 select2 脚本的 html 代码:
<div class='round10'>
<select class='select2-authors-multiple' name='author[]' id='author' multiple style='width: 100%;'></select>
这来自同一页面:
<div class='round10'>
<select class='select2-narrators-muliple' name='narrator[]' id='narrator' multiple='multiple' style='width: 100%;'></select>
从 Firefox 检查员我得到这个:
<input class="select2-search__field" type="search" tabindex="0" autocomplete="off" autocorrect="off" autocapitalize="none" spellcheck="false" role="searchbox" aria-autocomplete="list" placeholder="Select an Author" style="width: 1251.9px;">
<input class="select2-search__field" type="search" tabindex="0" autocomplete="off" autocorrect="off" autocapitalize="none" spellcheck="false" role="searchbox" aria-autocomplete="list" placeholder="Select a Narrator" style="width: 1241.9px;">
我已经编写了这段代码,它可以工作:
driver.execute_script("$('.select2-search__field').val('example').trigger('change')")
但是如果用“示例”填写两个表格,我怎样才能将它们分开? 如何在 jQuery 选择器中添加附加属性以进一步限制匹配元素?
尝试使用它来识别它们,但它不起作用:
# author
script = "$('.select2-search__field[id='Author']').val('example').trigger('change'))"
# generate a script via javascript
driver.execute_script(script)
【问题讨论】:
【参考方案1】:尝试更改一类输入字段
class="select2-search__field1"
喜欢这个
<input class="select2-search__field1" type="search" tabindex="0" autocomplete="off" autocorrect="off" autocapitalize="none" spellcheck="false" role="searchbox" aria-autocomplete="list" placeholder="Select a Narrator" style="width: 1241.9px;">
【讨论】:
我希望,但该网站不是我的,所以我无法更改代码。 如果它不是你的,那你为什么想要精灵? 不明白,这个想法是自动填写网络表单,从文本文件中获取数据。你还想让我改脚本代码吗?以上是关于从 select2 中使用 python 选择一个选项并填写 Web 表单的主要内容,如果未能解决你的问题,请参考以下文章
Select2:如何允许用户从默认列表中选择但接受新字符串?