51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2223|回复: 10
打印 上一主题 下一主题

【求助】这个元素屎活定位不到

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2017-4-28 13:44:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#coding=utf-8
from selenium import webdriver
import time



driver = webdriver.Firefox()
# driver.set_window_size(480,800) 设置浏览器大小
driver.get("http://10.188.181.74:9082/sso-webapp")
driver.maximize_window()
#登录系统
driver.find_element_by_name('username').clear()
driver.find_element_by_name('username').send_keys('zhulj')
driver.find_element_by_name('psword').clear()
driver.find_element_by_name('psword').send_keys('1')
driver.find_element_by_name('submitBtn').click()

time.sleep(6)
#进入需求填报销单
driver.find_element_by_xpath("/html/body/div/div/div[2]/div[3]/div/a[2]/div/div/p[2]").click()

#点击后另开了个新的页面,点击新增
time.sleep(6)
driver.find_element_by_xpath('//*[@id="btn_add"]').click()    # 就这个了。id="btn_add" 也找不到一直提示Unable to locate element: //*[@id="btn_add"]  


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

  • TA的每日心情

    2024-7-8 09:00
  • 签到天数: 943 天

    连续签到: 1 天

    [LV.10]测试总司令

    2#
    发表于 2017-4-28 14:13:20 | 只看该作者
    xpath不可以么
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2024-7-8 09:00
  • 签到天数: 943 天

    连续签到: 1 天

    [LV.10]测试总司令

    3#
    发表于 2017-4-28 14:13:37 | 只看该作者
    相对  绝对路径都试试
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    擦汗
    2024-11-1 14:56
  • 签到天数: 1182 天

    连续签到: 1 天

    [LV.10]测试总司令

    4#
    发表于 2017-4-28 14:23:02 | 只看该作者
    建议:看看HTML源码中是否这个新建按钮包含在frame或者iframe标签中;如果是的话需要使用SwitchTo()切换到包含按钮的相应frame或者iframe中进行定位。

    评分

    参与人数 1测试积点 +10 收起 理由
    lsekfe + 10 积极回复获得测试积点10 赶快去商城换取奖.

    查看全部评分

    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    昨天 07:05
  • 签到天数: 2036 天

    连续签到: 3 天

    [LV.Master]测试大本营

    5#
    发表于 2017-4-28 16:54:40 | 只看该作者
    如果没有框架的话,试一下这个driver.find_element_by_xpath(”//button[text()='新增']“),有框架加一个driver.switch_to_frame(框架名)
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2021-12-24 13:41
  • 签到天数: 314 天

    连续签到: 1 天

    [LV.8]测试军长

    6#
    发表于 2017-4-28 18:03:06 | 只看该作者
    看你的页面源码是有iframe
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    7#
     楼主| 发表于 2017-5-2 14:34:31 | 只看该作者
    清晨一缕阳光 发表于 2017-4-28 14:23
    建议:看看HTML源码中是否这个新建按钮包含在frame或者iframe标签中;如果是的话需要使用SwitchTo()切换到 ...

    确实有在frame 和iframe中,不过用了switch to 也是 不能定位。

    所以我换了个最简单的不在frame 或者iframe中的  
    把那句改成了driver.find_element_by_xpath("/html/body/div[1]/div[1]/div[3]/div/div[2]/ul/li[6]/a").click()
    发现还是定位不了。这您知道会是什么原因吗?

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

    x
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    8#
     楼主| 发表于 2017-5-2 14:35:38 | 只看该作者
    掉渣饼 发表于 2017-4-28 18:03
    看你的页面源码是有iframe

    我加了switch_to.frame也没有用

    定位iframe外的另外的元素也不行。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    擦汗
    2024-11-1 14:56
  • 签到天数: 1182 天

    连续签到: 1 天

    [LV.10]测试总司令

    9#
    发表于 2017-5-2 15:34:53 | 只看该作者
    鹿小诞 发表于 2017-5-2 14:34
    确实有在frame 和iframe中,不过用了switch to 也是 不能定位。

    所以我换了个最简单的不在frame 或者i ...

    把你修改后的代码贴出来,还有就是报错的信息。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    10#
     楼主| 发表于 2017-5-2 15:58:18 | 只看该作者
    清晨一缕阳光 发表于 2017-5-2 15:34
    把你修改后的代码贴出来,还有就是报错的信息。

    #coding=utf-8
    from selenium import webdriver
    import time



    driver = webdriver.Firefox()
    # driver.set_window_size(480,800) 设置浏览器大小
    driver.get("http://10.188.181.74:9082/sso-webapp")
    driver.maximize_window()

    #登录系统
    driver.find_element_by_name('username').clear()
    driver.find_element_by_name('username').send_keys('zhulj')
    driver.find_element_by_name('psword').clear()
    driver.find_element_by_name('psword').send_keys('1')
    driver.find_element_by_name('submitBtn').click()

    time.sleep(30)

    #进入需求填报销单
    driver.find_element_by_xpath("/html/body/div/div/div[2]/div[3]/div/a[2]/div/div/p[2]").click()

    time.sleep(20)

    driver.find_element_by_xpath("/html/body/div[1]/div[1]/div[3]/div/div[2]/ul/li[6]/a").click()    #就这句了



    报错信息:
    C:\Users\sunl\AppData\Local\Programs\Python\Python36\python.exe E:/自动化测试/test/登录客反.py
    Traceback (most recent call last):
      File "E:/自动化测试/test/登录客反.py", line 26, in <module>
        driver.find_element_by_xpath("/html/body/div[1]/div[1]/div[3]/div/div[2]/ul/li[6]/a").click()
      File "C:\Users\sunl\AppData\Local\Programs\Python\Python36\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 306, in find_element_by_xpath
        return self.find_element(by=By.XPATH, value=xpath)
      File "C:\Users\sunl\AppData\Local\Programs\Python\Python36\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 784, in find_element
        'value': value})['value']
      File "C:\Users\sunl\AppData\Local\Programs\Python\Python36\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 249, in execute
        self.error_handler.check_response(response)
      File "C:\Users\sunl\AppData\Local\Programs\Python\Python36\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 193, in check_response
        raise exception_class(message, screen, stacktrace)
    selenium.common.exceptions.NoSuchElementException: Message: Unable to locate element: /html/body/div[1]/div[1]/div[3]/div/div[2]/ul/li[6]/a
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    11#
     楼主| 发表于 2017-5-11 17:41:53 | 只看该作者
    因为我的句柄还留在第一个页面上。没有到弹出的第二页面上。切换下就好了。
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-11-27 00:24 , Processed in 0.069224 second(s), 24 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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