51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 3041|回复: 1
打印 上一主题 下一主题

【求助】python+selenium,求达人帮忙解惑

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2011-11-9 19:46:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
下面代码是一段点击页面链接(新建窗口打开链接),然后验证其URL的代码。
在运行的时候总是无法成功。请高手解答;
问题:
1、有时候运行的时候,close()先于assertEqual运行,关闭了页面,导致不成功;
2、有时运行会报ASCII错误。但我头部已经定义了utf8。。。
3、有时候(几率很大)选择第二个窗口后,get_location()还是会获取前一个窗口的URL
这是为何?
Python code

#coding=utf8
from selenium import *
import unittest,time,re,os,logging

class a(unittest.TestCase):


    def setUp(self):

        self.verificationErrors = []
        self.selenium = selenium("localhost", 4444, "*chrome", "http://www.testhome.com")
        self.selenium.start()

    def test_click(self):

        sel = self.selenium      
        port_NewWindow_Link_Xpath = [["xpath=/html/body/div[2]/div/ul/li[3]/a","http://www.test1.com","title1"],
                                     ["xpath=/html/body/div[2]/div/ul/li/a","http://www.test2.com","title2"],
                                     ["xpath=/html/body/div[2]/div/ul[2]/li[8]/a","http://www.test3.com","title3"]]


        sel.open("/")
      

        #logging.info("新建页面链接-->开始。")

        for click_link_NewWindow in port_NewWindow_Link_Xpath: #迭代器,遍历所有数据(Xpath,URL)
                #try:
                    NewWindow_Link_Xpath = click_link_NewWindow[0]
                    NewWindow_Link_link_URL = click_link_NewWindow[1]
                    NewWindow_Link_link_title = click_link_NewWindow[2]
                    print(NewWindow_Link_link_title)
                    sel.click(NewWindow_Link_Xpath)
                    sel.select_window(unichr(NewWindow_Link_link_title))
                    self.assertEqual(sel.get_location(),NewWindow_Link_link_URL)
                    print("sel.get_location():",sel.get_location(),"NewWindow_Link_link_URL:",NewWindow_Link_link_URL)
                    sel.close()
                    #sel.select_window(sel.get_all_window_titles()[0])

                #except:
                    #logging.error('action error:click',)
                    #logging.error('error xpath:',NewWindow_Link_Xpath,NewWindow_Link_link_URL)
                    sel.open("/")


        #logging.info("新建页面链接-->结束。")

    def test_teardown(self):

        self.selenium.close()
        self.selenium.stop()
        self.selenium.shut_down_selenium_server()

if __name__ == '__main__':
    unittest.main()
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2011-11-24 11:21:32 | 只看该作者
1、加一下 等待时间呢?  time.sleep()

2、ASCII报错的问题看看 在带有中文的字符串前面加个 u  像这样string=u'中文字符串'
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-5-1 23:58 , Processed in 0.069977 second(s), 29 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表