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

2024-10-03 15:33:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我很好奇是否有一种方法可以使用Selenium和python2.7通过任意顺序的多个“关键字”来查找元素。请允许我用一个例子来解释:

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)

这只是代码的一个片段,但是我如何合并它来查找一个元素,该元素以任意顺序包含这两个关键字(关键字1,关键字2)?原则上听起来很简单,而且很可能是,但我花了很长时间试图得到这个。如有任何建议,将不胜感激,谢谢。在


Tags: 方法元素inputraw顺序titleselenium关键字
1条回答
网友
1楼 · 发布于 2024-10-03 15:33:55

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

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

elm = driver.find_element_by_xpath(expression)

例如,如果keyword1将是hello,而{}将是{},则{}将变成:

^{pr2}$

如果您想同时处理小写和大写,则需要使用translate(),请参阅此相关线程中的更多信息:

相关问题 更多 >