selenium 在循环中按类名查找元素,Selify

e5njpo68  于 2022-11-10  发布在  其他
关注(0)|答案(1)|浏览(168)

我需要在Python中创建一个包含一些类的页面,这些类的编号类似于class1, class2, class3, ... classN,我希望找到所有这些类中包含的文本。
我尝试使用find_element()函数:

list = []
for i in range(N-1)
  list.append(driver.find_element(By.CLASS_NAME, "class" + str(i+1) ).text))

但不幸的是,我收到了这个错误消息:

raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"css selector","selector":".class1"}
  (Session info: chrome=107.0.5304.68)

有没有其他方法可以让我在这场刮刮中获得成功?
编辑
这是我想要刮掉的页面,我希望每一盘都能让两名球员赢得比赛。
在源代码中,类分别命名为"smh__part smh__home smh__part--" + str(i+1)"away"

7cwmlq89

7cwmlq891#

Class_name只接受单个类名,不接受多个类名。相反,请使用css selector。使用pythonformat()函数

list = []
for i in range(N-1):
  list.append(driver.find_element(By.CSS_SELECTOR, "[class='smh__part  smh__home smh__part--{}']".format(i+1)).text)

或具有单一类值的CLASS_NAME

list = []
for i in range(N-1):
  list.append(driver.find_element(By.CLASS_NAME, "smh__part--" + str(i+1) ).text)

相关问题