Selenium with Python:无法选择内部

时间:2018-06-02 09:31:59

标签: python selenium select xpath

我是Python和Selenium的新手,并尝试使用选举数据(https://historico.servel.cl/SitioHistorico/index2008_alca.htm,下面的html代码)抓取网页。在此页面上,我需要使用Selenium进行导航,因为在菜单中选择项目时,网址不会更改。作为第一步,我需要选择左上角的“DivisiónGeografica”按钮。我尝试使用find_element_by_xpath()导航到相应的代码。

但是,按xpath导航仅适用于#document<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">行以外的标记。例如,driver.find_element_by_xpath("/html/frameset[1]/frame")让我接到#document之前的第一个标记,但我无法选择之后的任何<body><form>' or标记。我还尝试使用标签名称选择元素,例如driver.find_element_by_name("DATOS"),但没有成功。这是因为''和/或'#document'标签/行还是这里有什么问题?

我感兴趣的对象是<a href="geografico.htm" .... </a>。您对如何使用xpath(或任何其他方法)选择它有什么建议吗?

非常感谢你的帮助! 最好, likeat.100

source code

1 个答案:

答案 0 :(得分:1)

此元素<a href="geografico.htm" .... </a>位于框架中。您需要切换webdriver的焦点/控件以与其进行交互。

用于切换WebDriver的控件,您可以使用以下代码:

driver.switch_to.frame(driver.find_element_by_name('guiaFrame'))  

然后您可以轻松地与提到的网络元素进行交互。

请记住,如果您在完成当前帧后将WebDriver的焦点切换回它的父/默认值,这总是一个很好的做法,因为您必须使用:

driver.switch_to.default_content() 

HTH !!