Phantomjs切换到不正确的iframe

时间:2015-12-24 22:50:25

标签: python selenium selenium-webdriver phantomjs

我使用phantomjs v.2.0.1(也有1.9.2)+ python + selenium。 切换到iframe元素时遇到了奇怪的行为。我找到了我需要的iframe元素并尝试切换到它。但实际上切换到那个html中的另一个iframe。这个技巧再现100%,我不知道为什么会这样。 尝试了Firefox网络驱动程序,它可以根据需要工作,没有惊喜(相同的python代码) 有任何想法吗?

boxframe = WebDriverWait(driver, 8).until(lambda driver :driver.find_element_by_xpath('//iframe[starts-with(@title, "...") and not(@disabled)]'))
driver.switch_to.frame(boxframe)

2 个答案:

答案 0 :(得分:1)

对于phantomjs和gostdriver,这是一段很长的时间issue,但似乎还没有解决问题。相反,您可能使用execute_script来完成它。

driver.execute_script("$x('//iframe[starts-with(@title, \'...\') and not(@disabled)]').contents().find('#elementid').click()")

答案 1 :(得分:1)

我使用BeautifulSoup包解决了这个问题。我下载页面后,我将其源传递给BS对象,然后搜索到它。

self.driver.get("mysite.com")
soup = BeautifulSoup(self.driver.page_source, 'html.parser')
rows = soup.findAll("div", { "class" : "dealRow" })