0

下面是我正在测试的代码。我正在尝试从三星的网页下载源代码,但有些代码在执行 click() 时会卡住。弹出窗口出现,但不会继续执行程序中的下一个代码。如果我手动关闭代码,则程序将执行下一行。我认为该程序正在等待弹出窗口的一些反馈。

我怎样才能让它进入下一行?我应该如何解决这个问题?

有任何想法吗?

提前致谢。


from selenium import webdriver

from selenium.webdriver.common.keys import Keys

dr.get('http://opensource.samsung.com/reception/receptionSub.do?method=list&menu_item=mobile&classification1=mobile_phone&classification2=&classification3=')

lefts = dr.find_elements_by_class_name("left")

print "number of lefts", len(lefts)

i = 0

cnt = 1

chandle = dr.current_window_handle

for left in lefts:
try:

    left.click()

except:

    print "click fail"

for h in dr.window_handles:

    print h, dr.current_window_handle

if chandle != h:

        dr.switch_to_window(h)

i=i+1

if i == cnt:

    break
4

1 回答 1

0

单击是阻止操作,因为 WebDriver 正在等待单击该页面加载后返回,并且弹出窗口不会返回。

要解决此问题,请尝试在单独的线程中运行单击。即使它会阻塞,它也不会阻止程序的其余部分执行。完成弹出窗口后,让主程序关闭弹出窗口,这将取消阻止在其自己的线程上运行的单击。

于 2013-06-27T15:22:50.083 回答