gpt4 book ai didi

selenium-webdriver - 如何填写具有相同类的表单字段

转载 作者:行者123 更新时间:2023-12-01 01:56:38 25 4
gpt4 key购买 nike

我正在使用 clj-webdriver 测试网站表单。我想知道怎么用(input-text)如果表单字段具有相同的类,则函数。

来自 (input-text)定义它给出了“将字符串 s 输入到查询 q 中找到的第一个表单元素中”。由于每个领域都有相同的类(class),当我给予时,

(input-text ".class")

它只填充第一个字段。有没有办法区分具有相同类的所有字段?

表单的字段只有 classtype作为选择器。

谢谢

最佳答案

input-text 只填充第一场比赛。

使用 quick-fill 把它们都填满。

例如。,:

(quick-fill {".class" "s"})

/编辑

你说“对于同一个类的 2 个字段,我必须输入 2 和 3 作为值。而且如果类是“对象对象完成”,我可以将类视为“.object”。我不确定你的意思后者,但我的理解是你想为不同的元素添加不同的值。

如果要查找特定元素,可以使用 find-elements .这些将返回 elements 的集合:
(find-elements {:class ".class"})

这将按照它们出现在页面上的顺序找到类“.class”的所有元素。

如果集合存储在一个变量中,文本可以通过 input-text 添加到每个元素中基于索引。例如,如果你想给它们添加一个递增的索引,你可以使用 map-indexed 将每个值的索引添加到元素中,如下所示(调用 doall 以遍历惰性序列中的每个元素 - 函数调用仅在访问元素时进行,而 doall 实现了这一点):
(defn fill!
"Fills all elements with class class with increasing numbers."
[class]
(let [elements (find-elements {:class class})]
(doall
(map-indexed (fn [index element]
(input-text element (str index)))
elements))))

这个函数的调用方式类似于 (fill! ".class") .

希望这可以帮助。

关于selenium-webdriver - 如何填写具有相同类的表单字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40050073/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com