有一个网格,其中有1000行,其中有一个名为Username(具有不同值)的列。
网格每个视图仅显示20行,其他行仅在滚动时才会 加载 (ajax)。
因此,如何搜索网格中的特定用户名,因为只有元素被滚动加载。
请问Scrollintoview
方法的帮助?还是我需要使用window.scrollby()
直到找到搜索到的物品?
首先,我很抱歉,因为我以前从未在网格上工作过。我认为这将是一个框架,并且使用 JavascriptExecutor
可以更轻松地切换然后滚动到元素。可惜!网格不是这种情况。
并且,当涉及网格时,必须有一个表格。
现在,这对我有用。
注意:每次滚动后,请不要忘记提供一些睡眠时间。
我已经自动化了一个示例网格,并在下面附加了示例工作代码。希望这有助于解决问题:
import java.io.IOException;
import org.openqa.selenium.By;
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.Keys;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
public class ScrollGrid{
public static void main(String[] args) throws IOException, InterruptedException{
WebDriver driver = new FirefoxDriver();
driver.get("https://demos.devexpress.com/ASPxGridViewDemos/PagingAndScrolling/VirtualPaging.aspx");
driver.manage().window().maximize();
//Clicking on an element inside grid to get it into focus
driver.findElement(By.xpath("//*[@id='ContentHolder_ASPxGridView1_DXMainTable']//td[.='9/30/1994']")).click();
WebElement ele=null;
int flag=0;
int count=0;
do{
try{
//element to search for while scrolling in grid
ele = driver.findElement(By.xpath("//*[@id='ContentHolder_ASPxGridView1_DXMainTable']//td[.='3/28/1996']"));
flag=1;
} catch(Throwable e){
//scrolling the grid using the grid's xpath
driver.findElement(By.xpath("//*[@id='ContentHolder_ASPxGridView1']//div[2]")).sendKeys(Keys.PAGE_DOWN);
Thread.sleep(3000);
}
}while((flag==0) || ((++count)==250));
if(flag==1){
System.out.println("Element has been found.!!");
}else{
System.out.println("Element has not been found.!!");
}
highlightElement(driver, ele); //For highlighting the element
Thread.sleep(5000L); //to check if the element scrolled to is highlighted.
driver.close();
}
//For highlighting the element to be located after scroll
public static void highlightElement(WebDriver driver, WebElement ele) {
try
{
for (int i = 0; i < 3; i++)
{
JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("arguments[0].setAttribute('style', arguments[1]);",ele, "color: red; border: 2px solid red;");
}
}
catch(Throwable t)
{
System.err.println("Error came : " +t.getMessage());
}
}
}
注意: 这现在可以正常工作。如果找到该元素,或者如果在250次滚动后找不到,它将退出循环。“
250”是相对数字。您可以将其更改为要在网格上执行的滚动数。
问题内容: 我有一个网页,当向下滚动页面直到每个项目都被加载时,它会不断加载新项目。 我正在使用Java中的Selenium,需要向下滚动到页面底部才能加载所有内容。 我尝试了几种不同的选项,例如滚动到页面底部的元素: 不过,这只会向下滚动一次,然后网页会继续加载。 我也尝试过这种方法,该方法也只能向下滚动一次,因为它只考虑了浏览器的高度。 非常感谢您的帮助。 问题答案: 我将为此提供Python
我有一个网页,不断加载新项目时,向下滚动页面,直到每个项目都加载。 我正在使用Java中的Selenium,需要向下滚动到页面底部才能加载所有内容。 我尝试了几种不同的选项,比如滚动到页面底部的某个元素: 这只是向下滚动一次,然后网页继续加载。 我也尝试过这种方法,它也只向下滚动一次,因为它只考虑了浏览器的高度。 任何帮助都非常感谢。
我正在做一个项目,通过使用JSOUP解析一个网站来显示歌曲名称和指向该歌曲的链接。唯一的问题是,我只能得到前10个元素,我想从那个网站,因为当你向下滚动,网站生成更多的元素。我试图解析的特定网站是一个名为Trappedio的音乐网站。你在查看网站时会注意到,当你向下滚动时,会出现更多的歌曲名称和图像。当我在chrome中使用inspect元素时,我看到当我滚动时,它生成了更多我试图解析的元素。 我
我试图刮所有可用的赔率为每个游戏在这个网页上找到:https://www.sportsbookreview.com/betting-odds/nfl-football/?date=20170917 我知道网页是动态加载的,所以我尝试插入一个滚动条,希望它在滚动时加载所有可用的赔率,但不幸的是,情况似乎并非如此,因为它只是在继续滚动时删除先前加载的数据。 我尝试过实现有这个问题的类似帖子,(比如这个
我想在Java中用标准API进行动态搜索。 在我写的代码中,我们需要用JSON编写url栏中的每个实体。我不想写“普拉卡”。 网址: 这里我们需要写出每个实体,即使我们只搜索一个实体。类型实体,它应该为空。 我的代码如下。假设有多个实体,我想做的是使用它想要搜索的单个实体进行搜索。正如你在照片中看到的,我不想写一个我不需要的实体。你能帮我做什么吗? 我在存储库中的代码 我的服务代码 我在控制器中的
我有一个表格视图,每个单元格都有自己的高度,因此不适合使用。相反,现在我使用和。这意味着它调用单元格上的函数来确定它的高度。这一切都很好。 问题是当你重新加载屏幕上的单元格时。例如,向下滚动以显示单元格10,然后重新加载单元格10,效果很好。但是当您开始向上滚动,经过您已经看到的单元格时,它会恢复到每个单元格的estimatedRowHeight,完全不考虑< code>sizeThatFits,