Selenium显示存在模态对话框但实际上不在屏幕上

0 投票
1 回答
1667 浏览
提问于 2025-04-17 13:53

我有一份完整的澳大利亚邮政编码列表,我需要用一个特定网站的搜索功能来获取对应的偏远地区代码。为此,我写了一个Python脚本,运行得很顺利。

不过,在我循环处理的时候,偶尔会出现一个“弹出对话框存在”的错误。问题是,我根本看不到任何对话框!网页看起来和往常一样,我也可以正常用鼠标与它互动。这个问题可能是什么原因呢?有没有解决办法?

browser = webdriver.Firefox() # Get local session of firefox
browser.set_page_load_timeout(30)
browser.get("http://www.doctorconnect.gov.au/internet/otd/Publishing.nsf/Content/locator") # Load page
assert "Locator" in browser.title
search = browser.find_element_by_name("Search") # Find the query box
ret = browser.find_element_by_id("searchButton")

doha_addr = []
doha_ra = []

for i in search_string_list:
    search.send_keys(i)
    ret.send_keys(Keys.RETURN)
    addr = browser.find_element_by_xpath("//table/tbody/tr[2]/td[2]")
    doha_addr.append(addr.text)
    ra = browser.find_element_by_xpath("//table/tbody/tr[4]/td[2]")
    doha_ra.append(ra.text)
    try:
        browser.find_element_by_xpath("//html/body/div/div[3]/div/div/div/div/div/div[7]/div/div[13]/div[1]").click()
    except:
        pass
    search.clear()

1 个回答

0

我好像在我的脚本运行的时候,看到一个弹出对话框,它会自己出现然后又消失。不过,这个问题用一个循环和一个错误处理的方式就不重要了... :7D

doha_ra = {}

for i in search_string_list:
    switch = True
    while switch == True:
        search.send_keys(i)
        ret.send_keys(Keys.RETURN)
        try:
            addr = browser.find_element_by_xpath("//table/tbody/tr[2]/td[2]")
            ra = browser.find_element_by_xpath("//table/tbody/tr[4]/td[2]")
            doha_ra[addr.text] = ra.text
            switch = False
        except:
            pass
        search.clear()

撰写回答