Selenium 打开弹出窗口 [Python]
我正在尝试通过以下方式点击一个链接:
driver.find_element_by_css_selector("a[href='javascript:openhistory('AXS0077')']").click()
这种方法在链接在新窗口打开时效果很好,但在这个情况下,链接实际上是打开一个弹出窗口。当我尝试用这种方法点击链接时,使用selenium会给我一个错误:
错误信息:u"给定的选择器 a[href='javascript:openhistory('AXS0077')'] 要么无效,要么没有返回一个WebElement。发生了以下错误: \nInvalidSelectorError: 指定了一个无效或非法的选择器"
这不是正确的方法吗?因为我觉得可能有其他方法来处理弹出窗口。
2 个回答
0
我发现使用 find_by_xpath
更有效。
以这个网站为例 弹出窗口
我用 firebug
来检查 元素
,然后获取 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()
2
你的CSS选择器可以写得更通用一些,比如:
driver.find_element_by_css_selector("a[href^='javascript']").click()
你那里的引号有点乱,可能会让人搞混。