我正在学习Selenium,我在解决这个问题时遇到了麻烦。我必须将以下链接https://www.oddset.de/de/annahmestelle/wettprogramm-kompakt中的所有游戏投注存储到数组中。
我对HTML和Javascript不太了解。我怎样才能将所有游戏投注的Spiel-Nr plus字段存储到数组中。
<div id="overview-3" class="accordion level-1">
<div class="accordion-group">
<div class="accordion-heading relative">
<div id="overview-1-3" class="accordion-body in collapse">
<div id="cont_3" class="accordion-inner">
<div class="slv-prog-header">
<div class="left-wrapper">
<div class="middle-wrapper">
<div class="right-wrapper">
<div class="slv-h slv-t4">
<div class="slv-h slv-t4">
<div class="slv-h slv-t5">
<div class="slv-h slv-t6">
</div>
<div class="slv-h slv-t7">
<span class="head">Spiel-Nr. PLUS</span
</div>
</div>
</div>
答案 0 :(得分:0)
好吧,你可以给这些列元素ID,以便更容易获得值
答案 1 :(得分:0)
您可以使用它来获取正确的Web元素列表:
List<WebElement> nrPlusElements = driver.findElements(By.cssSelector(".goToEventPage em:nth-of-type(2)"));
然后:
List<String> nrPlusStrings = new ArrayList<>();
for(WebElement nrPlusElem : nrPlusElements)
{
nrPlusStrings.add(nrPlusElem.getText());
}
到一个数组:
String[] array = nrPlusStrings.toArray(new String[nrPlusStrings.size()]);
将它们映射到正确的游戏可能会有点困难,但这不是问题。
答案 2 :(得分:0)
我会使用像这样的XPath,它演示了如何在XPath上使用'contains'和'starts-with':
String xpathText =
".//div[starts-with(@id,'overview') and contains(@class,'accordion')]//*[@class='head']";
By locator = By.xpath(xpathText);
List<WebElement> nrPlusElements = driver.findElements(locator);