我试图点击第二个“doctype”下的表格行内的链接,但是当我使用xpath / title时,它看不到它只看到顶部而不是孩子。
WebElement divList = driver.findElement(By.xpath("/iframe/html/body/div[2]"));
divList.getSize();
System.out.println(">>>>??" + divList.getSize());
List<WebElement> allCreditCards = creditCardsList.findElements(By.xpath("//*[@id='" + x + "']/li"));
System.out.println("CardsAre: >" + allCreditCards.size());
for (int i = 0; i <= allCreditCards.size(); i++) {
int temp = i + 1;
String creditcard = allCreditCards.get(i).getText();
System.out.println(" i is = " + creditcard + " " + i);
if (creditcard.equals()) {
driver.findElement(By.xpath("//*[@id='" + x + "']/li[" + temp + "]/a")).click();
break;
请参阅html页面的附图。
答案 0 :(得分:2)
您可能错过了switchTo iframe
部分。除非您提供您尝试过的代码,否则很难确切地知道出了什么问题。
//there is an `iframe` and you need to switchTo that `iframe`
driver.switchTo().frame(driver.findElement(By.id("EventSearchFrame")));
//the following css should find the a tag based on the partial title match
By byCss = By.cssSelector("th>a[title^='Attendee Type event']");
//wait for the element to load properly using explicit wait
WebElement myDynamicElement = (new WebDriverWait(driver, 10)).until(ExpectedConditions.presenceOfElementLocated(byCss));
myDynamicElement.click();
当您在iframe
内完成工作后,您需要将焦点切换回defaultContent()
,以便Selenium
知道您不在iframe
使用
driver.switchTo().defaultContent();
//continue
答案 1 :(得分:0)
两件事:
首先检查您使用的硒版本,以及您为驱动程序选择的浏览器。这是一个旧链接,但突出显示有时问题超出了您的控制范围,升级时最好:https://code.google.com/p/selenium/issues/detail?id=6111
其次,选择器通常用于在文档中进行搜索。当您在默认情况下查看iframe时,这是一个不同的文档。确保您的xpath能够首先找到iframe,然后找到文档。如果您需要更多帮助,请粘贴您的xpath。