python selenium:如何获取第一个隐藏按钮的网址?

时间:2017-01-15 04:22:17

标签: python selenium selenium-webdriver hidden-field

我处理的页面有隐藏的隐藏选项按钮。

* download sample video in the page(button is hidden by html)
[button1] (<- LINK_TEXT i s 'button1')
[button2]
[button3]

所以,我使用了EC.element_to_be_clickable&#39;。 此代码正常运行,但如果我不知道按钮的LINK_TEXT,则无法使用此方法。 LINK_TEXT的名称因页面而异。

我想只获得视频的第一个链接网址(ex-button1)。

_sDriver = webdriver.Firefox()
_sDriver.get('www.example.com/video')

wait = WebDriverWait(_sDriver, 10)
download_menu = _sDriver.find_element_by_id("download-button")
action = ActionChains(_sDriver)
action.move_to_element(download_menu).perform()

documents_url = wait.until(EC.element_to_be_clickable((By.LINK_TEXT, "button1"))).get_attribute('href')

我的代码的结果是通过&#39; button1&#39;的网址获得的,但如果我不知道&#39; button1&#39;文本,如何使用python获取第一个隐藏按钮的URL?

感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

首先,通过“按钮”我假设在这种情况下你的意思是a元素。

并且,由于该按钮被隐藏,element_to_be_clickable无效,请使用presence_of_element_located。要获取第一个a元素,请使用“by tag name”定位器:

documents_url = wait.until(EC.presence_of_element_located((By.TAG_NAME, "a"))).get_attribute('href')

可以有一种更好的方法来定位元素,而不会看到所提到的“按钮”元素的实际HTML,很难说清楚。