以下是该网站, http://www.mortgagecalculator.org/
点击获取今日最优惠房价&你会得到一个弹出窗口,其中 有框架。选择购买单选按钮,然后点击搜索按钮。
这是我的代码。我无法用我的代码选择单选按钮。需要建议。感谢
syntax.Block.Block()
答案 0 :(得分:0)
有与iframe相关的浏览器安全性 您无法像访问网页的其他部分一样访问iframe中的元素。
其他人也在努力解决这个问题: Selecting an element in iFrame jQuery
答案 1 :(得分:0)
更改driver.switchTo().frame("brbodxlxcs");
以匹配driver.switchTo().frame(driver.findElement(By.tagName("iframe[title='Fill Quote']")));
答案 2 :(得分:0)
您指的是 brbodxlxcs 的框架,看起来这个框架的ID正在动态变化。
试试这个,它为我工作
driver.get("http://www.mortgagecalculator.org/");
driver.findElement(By.xpath(".//*[@id='calc']/form/section/section[2]/div/div/div[1]/div/div/div[3]/div[1]/div[1]/div[4]/a/strong/font")).click();
Thread.sleep(8000);
List<WebElement> frames = driver.findElements(By.cssSelector("iframe"));
System.out.println(frames.size());
Iterator<WebElement> it = frames.iterator();
while(it.hasNext())
{
WebElement temp = it.next();
System.out.println(temp.getAttribute("id"));
}
这给了我所有可用的帧,在这种情况下是5。 然后我尝试了逐个可用的不同帧。
终于让这个工作了driver.switchTo().frame(2);
我也修改了
之类的单选按钮的xpath .//*[@id='brTabbedRateTable']//form[@name='mtgSearchForm']//input[@name='loantype' and @value='purchase']
&安培;像这样的搜索按钮,
.//*[@id='brTabbedRateTable']//form[@name='mtgSearchForm']//a[text()='Search' and @class='br-submit']
我希望它有所帮助!!
答案 3 :(得分:0)
看起来你遇到的问题是iFrame id是动态的,每次呈现页面时都是不同的。页面上有两个iFrame,因此请使用类似下面的xpath来查找特定实例:
(//iframe)[2]