Невозможно щелкнуть флажок в ячейке Glide DataGrid, используя Selenium или Playwright [Закрыто]JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Невозможно щелкнуть флажок в ячейке Glide DataGrid, используя Selenium или Playwright [Закрыто]

Сообщение Anonymous »

Я пытаюсь автоматизировать действие щелчка на флажке, расположенном в ячейке таблицы. Таблица разрабатывается с использованием Streamlit, в которой внутренне используется Glide DataGrid. < /P>
Я попробовал как селен, так и драматург для автоматизации, но ни один подход не работал надежно общим способом. Любые советы, обходной путь или альтернативная стратегия будут высоко оценены. < /P>
ниже я пробовал. Здесь я хочу нажать на флажок is_widget для команды St.balloons, как показано на желтом. Фактический нажимает на столбец рейтинга с текстом, как 5, как указано в Red

Код: Выделить всё

public class TestStreamlitGrid
{
private WebDriver driver;
private WebDriverWait wait;

public static void main(String[] args)
{
TestStreamlitGrid grid = new TestStreamlitGrid();
grid.init();
grid.click();
}

private void init()
{
System.setProperty("webdriver.chrome.driver",
"C:\\D_Drive\\chromedriver\\137\\chromedriver-win64\\chromedriver.exe");

ChromeOptions options = new ChromeOptions();
options.addArguments("incognito");

driver = new ChromeDriver(options);
driver.manage().window().maximize();
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
wait = new WebDriverWait(driver, 120);

try
{
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
driver.get("https://doc-data-editor.streamlit.app/?utm_medium=oembed&");
}
catch (Exception e)
{
e.printStackTrace();
}
}

private void click()
{
try
{
JavascriptExecutor js = (JavascriptExecutor) driver;
Boolean isInIFrame = !(Boolean) js.executeScript("return window.top === window.self;");;
if(!isInIFrame)
{
WebElement frame = driver.findElement(By.xpath("//iframe[@title='streamlitApp']"));
driver.switchTo().frame(frame);
}
WebElement grid = driver.findElement(By.xpath(".//*[@data-testid='data-grid-canvas']"));
System.out.println(grid);
((JavascriptExecutor) driver).executeScript("arguments[0].scrollIntoView({block: 'center'});", grid);

WebElement tr = driver.findElement(By.xpath(
"//table[@role='grid']/descendant::tbody/tr/td[text()='st.balloons']/parent::tr"));
String rowIndex = tr.getAttribute("aria-rowindex");

WebElement column = driver
.findElement(By.xpath("//table[@role='grid']/descendant::thead/tr/th[text()='is_widget']"));
String columnIndex = column.getAttribute("aria-colindex");

WebElement select = driver
.findElement(By.xpath("//table[@role='grid']/descendant::tbody/tr[@aria-rowindex='" + rowIndex
+ "']/td[@aria-colindex='" + columnIndex + "']"));

new Actions(driver).moveToElement(grid, select.getLocation().getX(), select.getLocation().getY()).click()
.sendKeys(Keys.ENTER).build().perform();
}
catch (Exception e)
{
e.printStackTrace();
}

}
}

Подробнее здесь: https://stackoverflow.com/questions/797 ... playwright
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»