Я использую Selenium WebDriver с Java и ChromeDriver.
Я хочу щелкнуть ячейку в таблице, показанной ниже, но поскольку таблица переполняется и имеет полосу прокрутки, нет гарантии, что ячейка действительнов представлении.
![enter image description here](https://i.stack.imgur.com/eTa7j.png)
Я получаю ячейку по ее XPath на основе некоторых параметров, относящихся к моему проекту.Я попробовал что-то вроде следующего:
String cellXPath = "/html/body/div/div/section/div/div/div[2]/div/div/div/table/tbody/tr[2]/td[2]/div/table/tbody/tr[" + (c.getRow()+2) + "]/td/*[" + (c.getCol()+1) + "]";
wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath(cellXPath)));
WebElement element = WebDriverUtility.driver.findElement(By.xpath(cellXPath));
System.out.println("CELL: " + element.toString());
jse.executeScript("arguments[0].scrollIntoView(true)", element);
Thread.sleep(500);
element.click();
Элемент печатается нормально и с ним связан xpath.Прокрутка не происходит и не происходит нажатие.
В настоящее время эта ошибка также отображается в строке element.click ():
org.openqa.selenium.StaleElementReferenceException: stale element reference: element is not attached to the page document
РЕДАКТИРОВАТЬ:
Вы можете найти источник длястраница здесь: http://libcal.library.ucsb.edu/rooms.php?i=12405
Я попробовал решение в другом вопросе, где я жду, когда элемент будет присоединен, или явный Thread.sleep, но проблема в том, что элемент скрыт втаблица, потому что при загрузке страницы таблица автоматически прокручивается вправо на определенную величину.Таким образом, элемент можно найти, но не нажать на него.Мне нужно вернуть элемент обратно в представление, вызвав прокрутку к ячейке, а затем запустить событие click.Надеюсь, что уточнить комментарии