Python selenium选择模态

时间:2018-02-18 20:42:49

标签: python selenium-webdriver

我正在尝试使用selenium获取谷歌地图嵌入网址。我可以点击分享按钮,页面显示一个带有共享网址和嵌入网址的模式。但是我无法切换对话框。 这是我的代码

    browser.get('https://www.google.com/maps/place/%s?hl=en'%(code))
    time.sleep(3)
    share_class = "ripple-container"
    buttons = browser.find_elements_by_class_name(share_class)
    for but in buttons:
        x = but.text
        if x == 'SHARE':
            but.click()
    modal = browser.switch_to.active_element
    share = modal.find_element_by_id("modal-dialog")
    print(share.text)

这是图片。enter image description here

1 个答案:

答案 0 :(得分:0)

您无需切换到模态对话框,您可以像访问页面上的任何其他HTML一样访问它。您可以将代码简化为

browser.get('https://www.google.com/maps/place/%s?hl=en'%(code))
browser.find_element_by_xpath("//button/div[.='SHARE']").click()
url = browser.find_element_by_id("last-focusable-in-modal").text
print(url)

但是......如果你阅读了对话框,你会看到它说明了

  

您也可以从浏览器的地址栏中复制链接。

因此,您要在第一行导航到的URL是您要从“共享”链接复制的内容,因此实际上没有任何意义。您已拥有该网址。