Selenium打开弹出窗口[Python]

时间:2014-05-29 10:40:25

标签: python selenium selenium-webdriver

我想通过以下方式点击链接:

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

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

  

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

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

2 个答案:

答案 0 :(得分:2)

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

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

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

答案 1 :(得分:0)

我取得了更多成功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()