当前位置: 首页 > 知识库问答 >
问题:

如何通过多个文本字符串查找元素?

唐修诚
2023-03-14
keyword1 = raw_input("Keyword: ").lower().title()
keyword2 = raw_input("Keyword: ").lower().title()

    try :
        clickOnProduct = "driver.find_element_by_xpath(\"//*[contains(text(), '" + keyword1 + "')]\").click()"
        exec(clickOnProduct)

这只是代码的一个片段,但我如何将其合并以查找以任何顺序包含这两个关键字(keyword1、keyword2)的元素呢?这听起来很容易原则上,它可能是,但我有一个地狱的时间试图得到这个。任何建议都将不胜感激,谢谢。

共有1个答案

聂宜
2023-03-14

可以使用contains()动态构造XPath表达式:

keywords = [keyword1, keyword2, ... ]
conditions = " or ".join(["contains(., '%s')" % keyword for keyword in keywords])
expression = "//*[%s]" % conditions

elm = driver.find_element_by_xpath(expression)

例如,如果keyword1hellokeyword2world表达式将变为:

//*[contains(., 'hello') or contains(., 'world')]

如果还想同时处理大小写,则需要使用translate(),请参阅相关线程中的更多内容:

    null
 类似资料:
  • 我正在学习powershell,并尝试编写一个脚本,通过字符串查找目录中的文件,然后对找到的文件进行查找和替换。我想将文件列表存储为一个变量,然后循环遍历文件并替换特定的字符串。这是我的脚本和错误,如果你有任何想法,它将非常感谢。谢谢! 错误 Get-Content:无法将参数绑定到参数“path”,因为它为null。在C:\scripts\script.ps1:5 char:18+(Get-Co

  • 如何获取从特定位置/具有特定偏移量开始的字符串中子字符串的索引,例如: PHP 中类似偏移

  • 问题内容: 我正在尝试在python中将字符串拆分为列表,并以字符更改分隔。我发现这很困难,但是可以肯定的是我想得太多了,并且错过了一个可能简单的解决方案。例: ‘abgg22ffeeekkkk1zzabbb’ 会成为: [‘a’,’b’,’gg’,‘22’,’ff’,’eee’,’kkkk’,‘1’,’zz’,’a’,’bbb’] 问题答案:

  • 问题内容: 我想识别该网络元素。它仅定义了这两个类。我不能执行以下操作,因为不使用空格分隔的值。什么是替代品? 问题答案: 我认为巴拉克·马诺斯的答案不能完全解释这一点。 想象一下,我们只有以下几个元素: XPath如何匹配 只匹配1个(完全匹配),巴拉克的答案 比赛1,比赛2和比赛3(比赛类别包含,课程顺序很重要) 匹配1、2、3和4(只要元素具有class 和) 同样,在这种情况下,Css S

  • 问题内容: 如果我搜索单个字符串,则效果很好: 但是我可以在下面的示例中有一个 or 语句吗? 问题答案: 在两个函数调用之间说 或使用函数使xpath不区分大小写

  • 我是Spring boot和Spring data JPA的新手,我正在尝试发出一个get请求,以搜索具有相同UF的所有城市的url,但我没有得到它。有人能告诉我如何搜索UFs吗?我正在努力做到以下几点: 以下是我想做的: 我的存储库: 实体代码: 控制器: