Selenium with Python:无法在<中选择!DOCTYPE ... Transitional//EN>



我是Python和Selenium的新手,并试图用选举数据(https://historico.servel.cl/SitioHistorico/index2008_alca.htm,下图中的html代码(进行网络抓取页面。在此页面上,我需要使用 Selenium 进行导航,因为在菜单中选择项目时 url 不会更改。作为第一步,我需要选择左上角的"地理划分"按钮。我尝试使用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之前进入第一个tage,但我无法选择任何<body><form>' or后面的标签。我还尝试使用标签名称选择元素,例如driver.find_element_by_name("DATOS"),但没有成功。这是因为"和/或"#document"标签/行还是这里有什么问题?

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

非常感谢您的帮助! 最好 喜欢.100

源代码

此元素<a href="geografico.htm" .... </a>位于框架中。您需要切换 Web 驱动程序的焦点/控件才能与之交互。

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

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

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

请记住,一旦完成当前帧,将WebDriver的焦点切换回其父/默认值,则始终是一种很好的做法,为此您必须使用:

driver.switch_to.default_content() 

嗡!!

最新更新