从selenium中的组中选择第一个跨度值

从selenium中的组中选择第一个跨度值,selenium,selenium-webdriver,Selenium,Selenium Webdriver,我想在一个页面中选择一个元素的第一个实例,其中许多这样的元素都带有“ID”,而ID并不总是相同的 例如,visit,它列出了很多运动项目和赔率,我想点击第一个赔率 html结构是这样的 我想点击第一个跨度值并继续一些测试用例。 有没有关于如何实现这一点的帮助?解决这一问题的方法有两种: 1.如果您确定始终只需要第一个实例: driver.FindElementsByClassName("OddsR")[0]; 如果没有,那么您拥有elemets集合,并且可以访问其中的一个 2.此外,您可以

我想在一个页面中选择一个元素的第一个实例,其中许多这样的元素都带有“ID”,而ID并不总是相同的

例如,visit,它列出了很多运动项目和赔率,我想点击第一个赔率

html结构是这样的

我想点击第一个跨度值并继续一些测试用例。
有没有关于如何实现这一点的帮助?

解决这一问题的方法有两种: 1.如果您确定始终只需要第一个实例:

driver.FindElementsByClassName("OddsR")[0];
如果没有,那么您拥有elemets集合,并且可以访问其中的一个 2.此外,您可以首先标识任何最近的封闭div,然后使用与上面相同的代码段:

driver.FindElementsByClassName("OddsR")[0];

如果页面本质上有点动态,那么使用@class属性是一种更好的方法。如果您感兴趣的OddsR类是页面上的第一个类,那么只需使用Driver.FindElement(By.ClassName(“OddsR”))。Webdriver将选择第一个出现(无论是否有更多出现)

已检查您的链接,我同意alecxe,您可能应该从div开始。但我建议使用更简单的选择器:

css = "div.MarketBd span.OddsR"

上述选择器将始终指向“MarketBd”类div中的“OddsR”类的第一个跨度。

感谢您的响应

我终于可以点击元素了,通过这个XPATH

"//span[@class='OddsR']"
这会单击第一次出现的“OddsR”值,而不给出任何索引