从 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 选择的选项中获取属性值

Select2 从过滤列表中选择所有选项以进行多项选择

Select2:如何允许用户从默认列表中选择但接受新字符串?

从 JSON 请求中自动选择 Select2:使用数据表编辑器

如何从外部列表框中控制 select2 选择框?

Select2 验证并强制用户选择至少 X 个项目