2 回答

TA貢獻(xiàn)1820條經(jīng)驗(yàn) 獲得超2個(gè)贊
由于該表使用 React,因此這些元素甚至根本不存在于頁(yè)面上,除非您向下滾動(dòng)到它們。我知道您提到滾動(dòng)不是最佳解決方案,但如果您需要表中的所有行,滾動(dòng)是這里唯一的選擇。
我已經(jīng)實(shí)現(xiàn)了一個(gè)使用坐標(biāo)向下滾動(dòng)頁(yè)面的示例 ScrollDown 方法。代碼在 C# 中,但其他語言的想法是相同的。
要使用 Javascript 滾動(dòng),您需要提供要滾動(dòng)到的坐標(biāo)。如果您希望滾動(dòng)多次——例如,向下滾動(dòng)、獲取表格行、繼續(xù)向下滾動(dòng)并獲取表格行直到到達(dá)表格末尾——您將需要更新yCoordinate您正在滾動(dòng)的內(nèi)容。由于滾動(dòng)是一個(gè)向上/向下的過程,因此您xCoordinate每次都可以使用相同的。
關(guān)于increment- 這個(gè)變量是指你想一次滾動(dòng)多少。increment應(yīng)該等于您希望滾動(dòng)的像素?cái)?shù)。如果要一次滾動(dòng) 3 行,并且每行高 100 像素,則需要設(shè)置increment為 300。
由于我不知道您的頁(yè)面大小或布局,因此無法為您提供更詳細(xì)的方法。我建議實(shí)施此方法并嘗試使用不同的 x/y 坐標(biāo)進(jìn)行滾動(dòng),以便為您的測(cè)試應(yīng)用程序獲得個(gè)性化的解決方案。
public void ScrollDown(int startX, int startY, int increment, int numberOfScrolls)
{
// cast webdriver to javascript executor
var executor = ((IJavaScriptExecutor) driver);
// keep track of current y coordinate
// since we are scrolling down, y coordinate will change with each scroll
var currentYCoordinate = startY;
// scroll down in a loop
for (int i = 0; i < numberOfScrolls; i++)
{
// scroll down
executor.ExecuteScript("window.scrollTo({startX}, {currentYCoordinate});");
// todo: implement any FindElement methods to get the new elements which have been scrolled into view.
// update y coordinate since we just scrolled down
currentYCoordinate = currentYCoordinate + increment;
}
}

TA貢獻(xiàn)1872條經(jīng)驗(yàn) 獲得超4個(gè)贊
對(duì)于具有實(shí)現(xiàn)延遲加載的網(wǎng)格的站點(diǎn)。- 您可以使用網(wǎng)格組件方法訪問數(shù)據(jù)。- 或者您可以使用 devtools>network 檢查產(chǎn)生數(shù)據(jù)的請(qǐng)求/響應(yīng)并嘗試復(fù)制請(qǐng)求。
在您的示例中,您所追求的數(shù)據(jù)位于 pagedList>items 上。
從理論上講,您應(yīng)該能夠使用 python rest API 庫(kù)復(fù)制此 api 調(diào)用。希望這可以幫助。
添加回答
舉報(bào)