我正在网上抓取以下网址:
https://www.sportsbookreview.com/betting-odds/nba-basketball/money-line/?date=20190311
页面的最右侧有一个向右滚动按钮,但是在检查其来源时,我没有找到与该按钮相关的单击的任何链接或JavaScript。这是我的问题:
答案 0 :(得分:0)
要单击向右箭头按钮,请使用while循环并检查按钮是否存在。如果是,则一旦找不到跳出循环,它将单击()。
driver.get("https://www.sportsbookreview.com/betting-odds/nba-basketball/money-line/?date=20190311");
WebDriverWait wait=new WebDriverWait(driver,40);
while(true)
{
if (wait.until(ExpectedConditions.visibilityOfAllElementsLocatedBy(By.xpath("(//i[@class='sbr-icon-chevron-right'])[1]"))).size()>0)
{
driver.findElement(By.xpath("(//i[@class='sbr-icon-chevron-right'])[1]")).click();
}
else
{
break;
}
}
答案 1 :(得分:0)
这只是我的两分钱,我会说我的JavaScript技能普通而简单。我确实经常使用JavaScript,WebDriver和Selenium。
如果我理解您的最初问题(我对您的问题还不够了解,无法回答),昆杜克写的#hiddenEl {
display: none;
font-weight: bold;
}
基本上是正确的。我只是在这里提供经过测试并可以正常工作的解决方案。
<label for="pet-select">Choose a pet:</label>
<select id="selectEl">
<option value="1">Hide hidden 1</option>
<option value="661056067">Show hidden 1</option>
<option value="2">Hide hidden 2</option>
<option value="3">Hide hidden 3</option>
<option value="571855424">Show hidden 2</option>
<option value="4">Hide hidden 4</option>
</select>
<div id="hiddenEl"><h2>Here is the hidden div!</h2></div>
这将单击第一行中的向右箭头,并使其向前移动。我不明白您的问题,因为箭头在DOM中作为元素出现,并允许用户对其进行操作。 您可以添加
use while loop and check if button exists.if yes it will click() once it can't find jumps out of the loop
如果需要。当箭头在那里时,它将显示为真实。我可以一直向右滚动,确认到达终点后箭头消失。