gpt4 book ai didi

javascript - Selenium WebDriver : clicking a visible button inside a row of a table

转载 作者:可可西里 更新时间:2023-11-01 13:48:40 25 4
gpt4 key购买 nike

很抱歉这个问题太长了。

更具体地说,我试图点击第 4 行显示的铅笔图标(编辑按钮)

enter image description here

这是我尝试执行的代码:

WebElement ele = driver.findElement(By.xpath("//a[contains(@title, 'Edit Row')]"));
JavascriptExecutor executor = (JavascriptExecutor)driver;
Executor1.executeScript("arguments[0].click();", ele);

这是 HTML 代码 enter image description here

在我运行 selenium 代码之后,驱动程序实际上点击了第一行的编辑按钮(管理 | NA)而不是第四行。我发现不仅第一行而且其他行也有相同的 HTML 代码,唯一的区别是铅笔/编辑按钮被隐藏了,因为我不是创建该行值的人。

我也试过下面的代码:

driver.findElement(By.xpath("//a[contains(@title, 'Edit Row')]")).click();

然后我收到错误

element is not currently visible and so may not be interacted with

司机似乎还在看第一行隐藏的编辑按钮,而不是第四行明显可见的按钮。

我是否可以根据值而不是行号单击“编辑”按钮?原因是将来我输入的测试值可能不会在第 4 行,而是在第 1 或第 10 行。

最后但同样重要的是,我的 Safari 似乎无法运行 JS Executor 代码,每次尝试时,都会返回以下错误:

org.openqa.selenium.WebDriverException: 'undefined' is not a function (WARNING: The server did not provide any stacktrace information)

有人也可以为我阐明这一点吗?

干杯

最佳答案

由于只显示一个编辑图标,下面的代码应该可以工作。

driver.findElement(By.cssSelector("a[title='Edit Row']")).click();

我认为您遇到隐藏元素问题的原因是您使用 JSE 来单击它。 Selenium 被设计为仅与可见的元素进行交互……以用户的方式进行交互。 JSE 允许您与不可见的元素进行交互。使用 JSE 是有原因的,但我认为这不是其中之一。使用 JSE,您找到了一个与您的 XPath 匹配但不可见的元素,然后尝试单击它...因此出现错误。

关于javascript - Selenium WebDriver : clicking a visible button inside a row of a table,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38091747/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com