2

我正在使用 Selenium 和 Python 创建一些自动化测试。目前我正在尝试从选择列表中获取所有选项并验证它们是否与另一个列表匹配。我不确定如何获取所有选项并将它们放在我可以与我的主列表交叉引用的格式中。

我一直在使用 Select 命令四处寻找,但无济于事。任何帮助,将不胜感激。谢谢。下面是我想从中获取选项的示例列表。

<select size="5" id="jobSelect" name="jobSelect" class="jobDropDown">                     
<option value="841444562">Bartender Job&nbsp;</option>                     
<option value="841444563">Line Cook Job&nbsp;</option>                     
<option value="841444559">Server Job&nbsp;</option>                     
<option value="913367599">test job&nbsp;</option>             
</select>
4

3 回答 3

1

要获取选择中的所有选项:

options = Select(self.driver.find_element_by_id("jobSelect")).options

然后按照 MONTYHS 的建议使用 cmp(options, otherList)

于 2013-11-07T17:56:54.493 回答
0

我猜您不想要该选项本身,因为它们是 Web 元素,您将比较两个 Web 元素列表同一页面上的两个确切列表列表比较将失败,因为选项 1 列表中的 Web 元素与选项 2 列表中的 Web 元素不同。

options = Select(self.driver.find_element_by_id("jobSelect")).options

返回网页元素列表。也许这就是你想要的,但更有可能你想要文本或值。在这种情况下,您需要遍历 web_elements 并获取文本或值。

for option in options:
    print(option.text)
    print(option.get_attribute('value'))

将文本或值放在列表中,并按照另一篇文章中的说明进行比较。

于 2013-11-07T21:00:18.433 回答
-1

不知道这是否是一种有效的方法,但你可以尝试

for i in lista: 
    if i in listb: 
      print("found: " + i)
于 2013-11-07T17:32:51.717 回答