Python/Selenium - 用长类名查找元素

1 投票
1 回答
4046 浏览
提问于 2025-04-18 05:30

这是一个在使用Selenium时遇到的比较基础的问题。

我在一个网站上想要遍历某个类,但这个类没有ID,也没有名字,类名却非常长,比如 class="my really long crappy class name with space"

我尝试使用 mydriver.find_elements_by_class_name(idClass);,其中 mydriver = webdriver.Firefox()

我还试过 my.really.long.crappy.class.name.with.space,但这也不行(我在其他类似问题的解答中看到过这个方法)。运行时没有报错,但结果的大小是零。

以下是我目前使用的函数,我的打印语句也能正常执行。

        def getElementByClass(idClass):
            a=[];
            try:
                print idClass;
                a = mydriver.find_elements_by_class_name(idClass);
                return a;
            except:
                print 'crap';

1 个回答

2

你可以使用 find_elements_by_css_selector() 方法:

mydriver.find_elements_by_css_selector('.class1.class2.class3');

这里的 class1class2class3 是你要查找的元素的类名。

另外,你也可以使用 find_elements_by_xpath() 方法:

mydriver.find_elements_by_xpath('//*[@class="my really long crappy class name with space"]')

如果你事先知道标签名的话,也可以把 * 替换成具体的标签名。

希望这些对你有帮助。

撰写回答