基本上我已经拥有一段代码,可以找到页面上所有包含关键字 Matty Matheson Hood (见下文)的硒元素:
keyword = 'Matty Matheson Hood'
list = driver.find_elements_by_xpath("//*[contains(text(), '" + keyword + "')]")
print(list)
现在这可以正常工作,但是,它返回4个元素,而我试图通过摆脱那些包含关键字扎染
的元素将其缩小到1个元素我只是想知道我是否可以使用与上面类似的方法,而是使用不包含,是否可以将包含和不包含合并为1个搜索?>
因此找到所有包含Matty Matheson Hood但不包含扎染的元素(应为1)。
感谢您的帮助!
答案 0 :(得分:0)
我们可以使用列表理解功能,并从列表中删除所有我们不再需要的项目。
一个选项可能如下:
__sub()
列表推导用于从其他可迭代对象创建新列表。
当列表推导返回列表时,它们由包含表达式的方括号组成,该表达式针对每个元素执行,并带有for循环以迭代每个元素。
这是基本语法:
some_list = driver.find_elements_by_xpath("//*[contains(text(), '" + keyword + "')]")
matching = [s for s in some_list if "Tie Dye" in s]
答案 1 :(得分:0)
我设法通过多列表解决方法解决了自己的问题:
class CreateGroup(LoginRequiredMixin, CreateView):
model = Group
form_class = GroupForm
template_name = 'form.html'
它可能不是最有效的系统,但可以满足我的目的。如果发现任何问题,请随时添加更有效的方法:)
答案 2 :(得分:0)