gpt4 book ai didi

python - 使用 Selenium WebDriver 和 Python 检索动态框架名称?

转载 作者:行者123 更新时间:2023-11-28 20:47:52 25 4
gpt4 key购买 nike

我需要在某个数据库上运行数千次搜索,我正在使用 Python 和 Selenium WebDriver 来自动执行它。问题是,包含搜索结果的框架有一个动态生成的名称。该名称始终以相同的方式开头(例如,“results_frame”),然后后面跟着一堆每次都会变化的数字(如“results_frame1298120910290”)。因此,基于几个小时的谷歌搜索,我尝试使用 xpath:

framename = driver.find_elements_by_xpath("//frame[contains(@name, 'results_frame')]")
driver.switch_to_frame(framename)

不好。当我打印“framename”时,我得到的是:

[<selenium.webdriver.remote.webelement.WebElement object at 0x101206350>,    <selenium.webdriver.remote.webelement.WebElement object at 0x101206390>]

而不是框架的实际名称。

我也尝试过使用索引(如 driver.switch_to_frame(0)driver.switch_to_frame(1) 等),建议 here , 但也不好。

那么,当框架的名称是动态生成的时,我该如何检索该名称?有什么想法吗?

(Python 2.7.5、Selenium 2.2.0、Mac OS X 10.6.8、Firefox 22.0)

最佳答案

find_elements_by_xpath 返回类型为 WebElement 的对象。您需要使用 get_attributeWebElement 中检索属性值。

framename = driver.find_element_by_xpath("//frame[contains(@name, 'results_frame')]").get_attribute("name")

这应该会返回您要查找的名称。

关于python - 使用 Selenium WebDriver 和 Python 检索动态框架名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17954652/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com