美文网首页
webdrvier_api_多窗口切换

webdrvier_api_多窗口切换

作者: 想_上天 | 来源:发表于2018-08-25 17:14 被阅读0次

    多窗口:

    以百度搜索“渗透吧”为例

    方法一:

    from selenium import webdriver

    from selenium import time

    dr = webdriver.Chrome()

    dr.get("www.baidu.com")

    dr.find_element_by_id("kw").send_keys("渗透吧")

    dr.find_element_by_id("su").click()

    sleep(3)

    dr.find_element_by_xpath("//*[@id='1']/h3/a").click()#点击渗透吧

    sleep(3)

    #第二个窗口  继续定位 点击 进入贴吧 按钮(没有切换窗口继续定位)

    #没有切换窗口意味着我们在第二个窗口操作时,而电脑用的是在第一个窗口的操作,不一致

    #因演示所以加个异常处理try和except,这里的except跟try是唱反调的,代码从try开始运行,如果try报错就进行except

    try:

        dr.find_element_by_link_text("进入贴吧").click()

        dr.refresh()

        sleep(3)

        dr.quit()

    except:

        print("报错:需要切换窗口!")

    #所以我们就要切换窗口来定位

    多窗口切换

    由默认窗口点击某个链接或者按钮,页面跳转到第二个窗口时,需要在定位脚本前增加如下代码告诉计算机我要切换窗口。

        #语法:dr.switch_to_window(dr.window_handles[1])

    switch_to_window   切换窗口方法

    .window_handles[1]  切换到第二个窗口

    [1]   代表的是进入第二个窗口

    [2]   代表的是进入第三个窗口        以此类推

    ###################正确的代码###########################

        #try和except是一个结构必须一起出现,pass表示什么都不做,代码正确或者错误都通过

        #try和else,这里的try和else是一起的,代码从try处开始运行如果不报错那么就会运行else

    try:

        dr.switch_to_window(dr.window_handles[1])

        dr.find_element_by_link_text("进入贴吧").click()

        dr.refresh()

        sleep(3)

    except:

        pass

    else:

        print("页面跳转成功!!!可以关闭")

    finally:

        dr.quit()

    方法二:

    通过get方法切换到第二个窗口     相当于在原有的窗口操作,没有多处的窗口

    dr.get("得到的一个地址")

    这个方法的意思是我们点击后多了个窗口,这个多出的窗口是个预期结果吧,我们将这个预期结果的窗口网址放到dr.get("窗口网址")里就行了

    from selenium import webdriver

    from selenium import time

    dr = webdriver.Chrome()

    dr.get("www.baidu.com")

    dr.find_element_by_id("kw").send_keys("渗透吧")

    dr.find_element_by_id("su").click()

    sleep(3)

    dr.find_element_by_xpath("//*[@id='1']/h3/a").click()

    sleep(3)

    dr.get("http://tieba.baidu.com/f?ie=utf-8&kw=%E6%B8%97%E9%80%8F&fr=search")

    sleep(3)

    dr.find_element_by_link_text("进入贴吧").click()

    相关文章

      网友评论

          本文标题:webdrvier_api_多窗口切换

          本文链接:https://www.haomeiwen.com/subject/gngwiftx.html