从列表中选择所有选项并将它们与另一个列表进行比较

时间:2013-11-07 17:27:57

标签: python selenium

我正在使用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>

3 个答案:

答案 0 :(得分:1)

获取选择中的所有选项:

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

然后按照MONTYHS

的建议使用cmp(options,otherList)

答案 1 :(得分:0)

我猜你不想要这个选项,因为它们是web元素,你会比较两个我从未比较过web元素的web元素列表,因为像web元素一样,它们位于DOM的不同位置如果在同一页面上有两个确切的列表,则列表比较将失败,因为选项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'))

将文本或值放在列表中,并按照其他帖子中的说明进行比较。

答案 2 :(得分:-1)

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

for i in lista: 
    if i in listb: 
      print("found: " + i)