我可以在python和Selenium中使用正则表达式找到元素吗?

发布于 2021-01-29 18:04:39

我需要单击一个下拉列表,然后单击其中的隐藏元素。html将由javascript生成,但我不知道ID或类名,但我会知道其中会有一个短语。我可以通过正则表达式查找和元素,然后用硒单击它吗?

关注者
0
被浏览
172
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    您不能简单地使用内置的硒webdriver定位器进行基于正则表达式的搜索,但是您可以通过多种操作来帮助您:


    还有 CSS选择器, 用于元素属性的部分匹配:

    a[href*=desiredSubstring]  # contains
    a[href^=desiredSubstring]  # starts-with
    a[href$=desiredSubstring]  # ends-with
    

    而且,您总是可以找到比所需更多的元素,并稍后在Python中将其过滤掉,例如:

    import re
    
    pattern = re.compile(r"^Some \w+ text.$")
    
    elements = driver.find_elements_by_css_selector("div.some_class")
    for element in elements:
        match = pattern.match(element.text)
        if match:
            print(element.text)
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看