Python/Selenium - 用长类名查找元素
这是一个在使用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');
这里的 class1
、class2
和 class3
是你要查找的元素的类名。
另外,你也可以使用 find_elements_by_xpath()
方法:
mydriver.find_elements_by_xpath('//*[@class="my really long crappy class name with space"]')
如果你事先知道标签名的话,也可以把 *
替换成具体的标签名。
希望这些对你有帮助。