Python 扫描类名相同的行元素

Python 扫描类名相同的行元素,python,python-2.7,selenium,selenium-webdriver,Python,Python 2.7,Selenium,Selenium Webdriver,我在一个网页的行中有许多链接,它们的类名是相同的。像这样: 我可以使用XPATH单击第一个链接 "(//span[@class='odds black'])" 但是,我想扫描特定的行,然后单击每个赔率(如果存在)。 关于如何实现这一点有什么帮助吗 注意:我找不到使用其他属性的元素,因为它将根据数据动态更改 参考源代码的图像: 假设类名始终为“某种颜色”,则可以使用xpath函数。Xpath如下所示: "//span[contains(@class,'odds')]" 将返回类名中包含字符串

我在一个网页的行中有许多链接,它们的类名是相同的。像这样:

我可以使用XPATH单击第一个链接

"(//span[@class='odds black'])"
但是,我想扫描特定的行,然后单击每个赔率(如果存在)。 关于如何实现这一点有什么帮助吗

注意:我找不到使用其他属性的元素,因为它将根据数据动态更改

参考源代码的图像:


假设类名始终为“某种颜色”,则可以使用xpath函数。Xpath如下所示:

"//span[contains(@class,'odds')]"

将返回类名中包含字符串“赔率”的所有跨距。

CSS选择器是类感知的,因此对我来说使用它更有意义

赔率


Xpath将类视为简单字符串,因此强制您使用“contains”,其中CSS允许您单独处理类,而不是使用以下格式的Xpath:

"(//span[@class='odds black'])"
您是否可以使用红色方框上方显示的格式:

/html/body/div[2]/div[3]/div[1]/div[1]/div[2]table/tbody[31]/tr[1]/td[5]/a/span[2]/span/span
(通过在firebug中选择一个元素,右键单击其代码并选择copy XPATH,可以轻松获得这种格式)

我发现在许多情况下,我可以为tr[1]或其他路径属性添加计数器,以便非常准确地下移行。我真的看不到您的站点来比较下面的xpath,但我想它会是这样的:

/html/body/div[2]/div[3]/div[1]/div[1]/div[2]table/tbody[31]/tr[1]/td[5]/a/span[2]/span/span
/html/body/div[2]/div[3]/div[1]/div[1]/div[2]table/tbody[31]/tr[2]/td[5]/a/span[2]/span/span
/html/body/div[2]/div[3]/div[1]/div[1]/div[2]table/tbody[31]/tr[3]/td[5]/a/span[2]/span/span
然后你可以添加一个像“i”这样的计数器

因此,您将迭代循环中的计数器,并将其设置为以下内容:

"/html/body/div[2]/div[3]/div[1]/div[1]/div[2]table/tbody[31]/tr["+str(i)+"]/td[5]/a/span[2]/span/span"

您可以添加此页面的链接以查看源代码的外观吗?类名总是“赔率某种颜色”吗?@pawelmhm是的。。同一行中的“整数”总是相同的。请访问网站(www.sbobet.com/euro)。。。我还编辑了我的问题,包括完整的来源。