Python/Selenium-通过长类名的类名查找元素
硒的基本问题 在我试图迭代的站点中有一个类(没有ID,没有名称),但是类名非常长,比如Python/Selenium-通过长类名的类名查找元素,python,css,selenium,Python,Css,Selenium,硒的基本问题 在我试图迭代的站点中有一个类(没有ID,没有名称),但是类名非常长,比如class=“我的真正长的带空格的蹩脚类名” 我正在尝试mydriver.find\u elements\u by\u class\u name(idClass)其中mydriver=webdriver.Firefox() 我还尝试了my.really.long.crapy.class.name.with.space,但这也不起作用(将其视为针对像我这样的一些其他问题发布的解决方案。当我运行此操作时,不会出现错
class=“我的真正长的带空格的蹩脚类名”
我正在尝试mydriver.find\u elements\u by\u class\u name(idClass)代码>其中mydriver=webdriver.Firefox()
我还尝试了my.really.long.crapy.class.name.with.space
,但这也不起作用(将其视为针对像我这样的一些其他问题发布的解决方案。当我运行此操作时,不会出现错误,但我的结果大小为零
下面的函数是我目前正在使用的,我正在打印
def getElementByClass(idClass):
a=[];
try:
print idClass;
a = mydriver.find_elements_by_class_name(idClass);
return a;
except:
print 'crap';
您可以使用:
其中class1
,class2
和class3
是元素具有的类名
或者,另一种选择是使用:
如果事先知道标记名,也可以将其替换为*
希望能有帮助。你传递了什么idClass
值?@alecxe我尝试了“我很长的带空格的蹩脚类名”
和“我的.really.long.crapy.class.name.with.space”
当然可以。你能解开//*正在做什么吗?@jasonm它意味着任何元素,任何标记名。你没有提到你要找的元素。如果你知道元素是什么,就用它替换*
。例如,//div[…]
。
mydriver.find_elements_by_css_selector('.class1.class2.class3');
mydriver.find_elements_by_xpath('//*[@class="my really long crappy class name with space"]')