无法使用 selenium webdriver 选择表格行,因为 div 类正在动态变化
Posted
技术标签:
【中文标题】无法使用 selenium webdriver 选择表格行,因为 div 类正在动态变化【英文标题】:Not able to select the row of table using selenium webdriver as div class is dynamically changing 【发布时间】:2016-07-01 13:08:52 【问题描述】:我想选择表格的第一行,但 selenium 无法选择表格 itslef,因为它的父 div 具有根据鼠标事件发生变化的动态类。帮我选择行,因为我都卡住了。 以下是部分截图:
鼠标不在行时:
选择行时:
【问题讨论】:
请分享您在 selenium 中尝试过什么????用什么语言???并尽可能分享您的网站网址... 请提供更多的 html 代码,重要的是 HTML 上面需要的 div 元素来帮助你。使用可以使用带有 fire bug 的 firepath 来查找 xpath。如果 firepath 给出的相对路径包含动态元素,则选择生成绝对 xpath,然后将提供绝对 xpath。你可以从这个 xpath 获得帮助 【参考方案1】:因为它是一个Ext-Js 3(必须从您的屏幕截图中反向搜索那些类文件并找到它。下次请提及框架)应用程序,您可以使用相对第一行的xpath
//div[contains(@class,'x-grid3-row')][1]//td[contains(@class,'x-grid3-col')]
由于您没有提到哪种语言,下面是示例 Ext-JS 3 应用程序的 Java 实现
MCVE
public static void main(String[] args) throws InterruptedException
System.setProperty("webdriver.chrome.driver", "D:\\chromedriver.exe");
WebDriver driver = new ChromeDriver();
driver.get("http://examples.extjs.eu/one2many.html");
for (int i = 1; i < 6; i++)
Thread.sleep(1000);
driver.findElement(By.xpath(forRow(i))).click();
driver.quit();
/**
*
* @param index starts from 1
* @return
*/
private static String forRow(int index)
return "//div[contains(@class,'x-grid3-row')][" + index + "]//td[contains(@class,'x-grid3-col')]";
【讨论】:
以上是关于无法使用 selenium webdriver 选择表格行,因为 div 类正在动态变化的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Selenium WebDriver 检查单选按钮?
如何使用 Selenium WebDriver 和 Java 获得选定的选项
在 Selenium Webdriver 如何处理这种包含复选框的多选下拉列表
无法使用Selenium和Java 11导入org.openqa.selenium.WebDriver
无法使用 Selenium 和页面工厂在页面对象类中调用“org.openqa.selenium.WebDriver.getTitle()”