Почему Selenium находит элемент по xpath, работает в Python, а ошибка - в Java?

0

Я сделал проект с Selenium на python, который работает и успешно находит элемент с веб-сайта https://ethermine.org/miners/0fB3583c11320BB9c7F512e06ce9c3A9218568C9/dashboard .

код Python

from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
from time import sleep

driver = webdriver.Chrome(ChromeDriverManager().install())
driver.get("https://ethermine.org/miners/0fB3583c11320BB9c7F512e06ce9c3A9218568C9/dashboard")

sleep(5)

print(driver.find_element_by_xpath("""//*[@id="app"]/div[4]/main/div/div[2]/div/div[2]/div[3]/div/div[2]/div/div/table/tbody"""))

При попытке воссоздать то же самое в java выдает ошибку: «Исключение в потоке« main »org.openqa.selenium.NoSuchElementException: нет такого элемента: невозможно найти элемент»

код Java

package com.traptricker;

import org.openqa.selenium.By;
import org.openqa.selenium.chrome.ChromeDriver;

public class Main {

    public static void main(String[] args) throws InterruptedException {

        System.setProperty("webdriver.chrome.driver", "chromedriver.exe");
        ChromeDriver driver = new ChromeDriver();

        driver.get("https://ethermine.org/miners/0fB3583c11320BB9c7F512e06ce9c3A9218568C9/dashboard");

        Thread.sleep(5000);

        System.out.println(driver.findElement(By.xpath("//*[@id=\"app\"]/div[4]/main/div/div[2]/div/div[2]/div[3]/div/div[2]/div/div/table/tbody")));

    }
}

1
  • на какой элемент вы хотите щелкнуть, сделайте снимок экрана и отметьте его на снимке экрана 2 дня назад
1

попробуйте использовать лучше xpath: // div [@ class = 'active table-container'] // tbody

 public static void main(String[] args) throws InterruptedException {
    WebDriverManager.chromedriver().setup();
    ChromeDriver driver = new ChromeDriver();

    driver.get("https://ethermine.org/miners/0fB3583c11320BB9c7F512e06ce9c3A9218568C9/dashboard");
    driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(10));
    //        System.out.println(driver.findElement(By.xpath("//*[@id=\"app\"]/div[4]/main/div/div[2]/div/div[2]/div[3]/div/div[2]/div/div/table/tbody")));
    System.out.println(driver.findElement(By.xpath("//div[@class='active table-container']//tbody")));

}

Вывод: [[ChromeDriver: chrome в WINDOWS (c4351687a4e43f9e1bf73cc6dccdb73d)] -> xpath: // div [@ class = 'active table-container'] // tbody]

1
  • Это отлично работает, спасибо! Есть ли у вас какие-либо ресурсы, которые я мог бы использовать, чтобы найти «лучший xpath»? вчера
-1

Попробуйте использовать это

System.out.println(driver.findElement(By.xpath("//*[@id='app']/div[4]/main/div/div[2]/div/div[2]/div[3]/div/div[2]/div/div/table/tbody")));
Новый участник
user17266736 is a new contributor to this site. Take care in asking for clarification, commenting, and answering. Check out our Code of Conduct.