Вы можете определить следующее изображение >
стрелка, используя приведенный ниже xpath:
String xpath = "//div[contains(@class, 'RightChevron')]";
Если вы перейдете к последнему изображению, указанный выше xpath не вернет никаких совпадений, потому что это изображение >
стрелкаотсутствует для последнего / единственного изображения.
Чтобы проверить, присутствует ли локатор без обработки каких-либо исключений, вы можете использовать метод findElements()
, как показано ниже:
List<WebElement> imageArrow = driver.findElements(By.xpath(xpath));
if(imageArrow.size() > 0) {
System.out.println("=> The image arrow is present...");
// Perform some action here
} else {
System.out.println("=> The image arrow is not present...");
}
Если размер списка больше нуля, тогда есть стрелка, иначе нет, поэтому приведенный ниже код будет циклически проходить, пока размер не станет больше нуля, и щелкнет стрелку изображения.
boolean isThereAnArrow = true;
while(isThereAnArrow) {
final String xpath = "//div[contains(@class, 'RightChevron')]";
List<WebElement> imageArrow = driver.findElements(By.xpath(xpath));
if(imageArrow.size() > 0) {
System.out.println("=> The image arrow is present...");
imageArrow.get(0).click(); // Clicking on the image arrow
} else {
System.out.println("=> The image arrow is not present...");
isThereAnArrow = false; // If there is no match then it will help us to break the loop
}
}
То же, что и выше, вы можете проверить наличие следующих сообщений >
стрелка.Ниже приведен весь код, который нажимает на стрелку >
, если она присутствует, или нажимает кнопку следующего сообщения, пока не появятся сообщения.
boolean isThereNextPostArrow = true;
while(isThereNextPostArrow) {
// Checks for the next '>' image arrow, if not then will break the loop
// ---------------------------------------------------------------------------
boolean isThereAnArrow = true;
while(isThereAnArrow) {
final String xpath = "//div[contains(@class, 'RightChevron')]";
List<WebElement> imageArrow = driver.findElements(By.xpath(xpath));
if(imageArrow.size() > 0) {
System.out.println("=> The image arrow is present...");
// Do something here
imageArrow.get(0).click(); // Clicking on the image arrow
} else {
System.out.println("=> The image arrow is not present...");
isThereAnArrow = false; // If there is no match then it will help us to break the loop
}
}
// ---------------------------------------------------------------------------
// Checks for the next '>' post arrow, if not then will break the loop
List<WebElement> nextPost = driver.findElements(By.xpath("//a[contains(@class, 'PaginationArrow')]"));
if(nextPost.size() > 0) {
System.out.println("=> The next post arrow is there...");
nextPost.get(0).click(); // Clicking on the next post
} else {
System.out.println("=> The next post arrow is not there...");
isThereNextPostArrow = false; // If there is no match then it will help us to break the outer loop
}
}
Надеюсь, это поможет ...