我正在尝试使用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)
答案 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是您要从“共享”链接复制的内容,因此实际上没有任何意义。您已拥有该网址。