使用Selenium在雅虎财经上查找按钮[JAVA]

hk8txs48  于 2023-01-07  发布在  Java
关注(0)|答案(3)|浏览(177)

我最近尝试从雅虎财经的财务报告中自动提取季度数据,但找不到方法。我想我可以从财经主页(E.x https://finance.yahoo.com/quote/SBUX/financials)中clickbuttons,但我找不到方法来定位Web元素。首先,我需要单击显示Balance Sheet的按钮。
下面是该按钮的所有HTML代码:

<div class="Fz(s) Fw(500) D(ib) Pend(15px) H(18px)" data-reactid=".27ez98r5x0u.1.$0.0.0.3.1.$main-0-Quote-Proxy.$main-0-Quote.2.0.0.0.1.1:$balance.0">
<span data-reactid=".27ez98r5x0u.1.$0.0.0.3.1.$main-0-Quote-Proxy.$main-0-   Quote.2.0.0.0.1.1:$balance.0.0">Balance Sheet
</span>
</div>

接下来,我需要找到并单击阅读Quartely的按钮

<div class="Fz(s) Fw(500) D(ib) Pend(15px) H(18px) C($finDarkLink):h Mend(15px) C($actionBlue)" data-reactid=".27ez98r5x0u.1.$0.0.0.3.1.$main-0-Quote-Proxy.$main-0-Quote.2.0.0.0.1.2.$1.0">
<span data-reactid=".27ez98r5x0u.1.$0.0.0.3.1.$main-0-Quote-Proxy.$main-0-Quote.2.0.0.0.1.2.$1.0.0">Quarterly
</span>
</div>

任何关于定位这些按钮的帮助或查找此财务信息的替代方法都将是有帮助的。

p8h8hvxi

p8h8hvxi1#

使用Xpath查找:

//button[contains(.,'Balance Sheet')]
//button[contains(.,'Quarterly')]
lx0bsm1f

lx0bsm1f2#

实际上,这些按钮在加载页面后准备单击,所以您应该尝试使用WebDriverWait等待,直到这些按钮变得可见并准备单击,如下所示:

String url = "https://finance.yahoo.com/quote/SBUX/financials";

driver.get(url);

WebDriverWait wait = new WebDriverWait(driver, 20);

WebElement balanceSheet = wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//span[text() = 'Balance Sheet']")));
balanceSheet.click();

WebElement quarterly = wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//span[text() = 'Quarterly']")));
quarterly.click();
iibxawm4

iibxawm43#

有没有可能通过Excel VBA从雅虎财务部门提取季度资产负债表。我非常努力地提取季度损益表,资产负债表和现金流量与VBA中的股票代码的帮助下,我也无法提取一个特定的行项目,例如:收入或净收入或现金和现金等价物等,我是新的VBA刚刚初学者。

相关问题