【问题标题】:Selenium open pop up window [Python]Selenium 打开弹出窗口 [Python]
【发布时间】:2014-05-29 10:40:25
【问题描述】:

我正在尝试通过以下方式点击链接:

driver.find_element_by_css_selector("a[href='javascript:openhistory('AXS0077')']").click()

如果链接在新窗口中打开,这很有效,但在这种情况下,链接实际上会打开一个弹出窗口。当我尝试使用此方法单击链接时,使用 selenium 会出现错误:

Message: u"给定的选择器 a[href='javascript:openhistory('AXS0077')'] 无效或无效 不会导致 WebElement。以下错误 发生:\nInvalidSelectorError: 无效或非法的选择器是 指定”

这不是正确的方法吗?因为 我认为可能有一些不同的方式来处理弹出窗口。

【问题讨论】:

  • 试试driver.find_element_by_css_selector("""a[href='javascript:openhistory("AXS0077")']""").click()driver.find_element_by_css_selector("""a[href="javascript:openhistory('AXS0077')"]""").click()

标签: python selenium selenium-webdriver


【解决方案1】:

您的 css 选择器可能更通用,也许:

driver.find_element_by_css_selector("a[href^='javascript']").click()

那里有各种疯狂的重叠引号。你可能会混淆它。

【讨论】:

    【解决方案2】:

    我更成功了using find_by_xpath

    以本站为例popups

    我使用firebug 检查element 并获取xpath

    然后使用以下完美工作。

    from selenium import webdriver
    
    baseurl="http://www.globalrph.com/davescripts/popup.htm"
    
    dr = webdriver.Firefox()
    dr.get(baseurl)
    dr.find_element_by_xpath("/html/body/div/center/table/tbody/tr[7]/td/div/table/tbody/tr/td[2]/div[1]/form/table/tbody/tr[4]/td[1]/a").click()
    

    【讨论】: