我最近测试了Selenium,看它能否比QTP更好地识别我的网络应用程序。到目前为止,它似乎做得很好。我试图在table元素中找到一个元素时遇到了问题。一些我如何找不到主表而不是表中的行。
This is how the table looks like
以下代码工作正常......
WebElement BaseTable = driver.findElement(By.id("table_simpleBrowser|type=TradingInstrumentReport|!browser"));
以下代码不在哪里......
BaseTable = driver.findElement(By.id("table_simpleBrowser|type=TradingInstrumentReport|!browser_tr_1"));
或
BaseTable = driver.findElement(By.className("even status_DEFAULT"));
或
WebElement BaseTable = driver.findElement(By.id("table_simpleBrowser|type=TradingInstrumentReport|!browser"));
BaseTable = BaseTable.findElement(By.className("even status_DEFAULT"));
有人可以帮我告诉我如何通过查找表格中某一行/列中的元素来检索表格中的某个值吗?
感谢。
答案 0 :(得分:1)
even
和status_DEFAULT
实际上是此网络元素的两个类。 By.className()
只接收一个类作为参数。它应该是
findElement(By.className("even"));
// or
findElement(By.className("status_DEFAULT"));
要通过两个类查找元素,请使用By.cssSelector()
findElement(By.cssSelector(".even.status_DEFAULT")); // note the dot before each class name
然而,它似乎不够独特。我建议您按包含browser_tr_1
findElement(By.cssSelector("[id*=`browser_tr_1`]"));