51Testing软件测试论坛

标题: selenium测试自动化 [打印本页]

作者: anne_zhang    时间: 2017-8-28 17:47
标题: selenium测试自动化
参照1html  <div class="row">
                            <div class="col m2 l2">查询类型</div>
                            <div class="col m10 l10">
                                <select id="select_type" name="select_type" class="browser-default">
                                    <option value="0" disabled="" selected="selected">请选择</option>
                                    <option value="1">身份证号</option>
                                    <option value="3">社保号</option>
                                    <option value="2">居民名字</option>
                                </select>
                            </div>
                        </div>
                        <div class="row">
2.定位选择框中叫做居民名字的选项如下:IDE录制出来的,定位方式
Select(driver.find_element_by_id("select_type")).select_by_visible_text(u"居民名字")
        driver.find_element_by_id("CH_Body_btPersonSearch").click()

3.但是执行后,报错如下:
Traceback (most recent call last):
  File "D:\zhangyan\test\python\health Record\health_try.py", line 31, in test_add
    Select(driver.find_element_by_id("select_type")).select_by_visible_text(u"居民名字")
  File "C:\Users\IRH-PC\AppData\Local\Programs\Python\Python36\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 282, in find_element_by_id
    return self.find_element(by=By.ID, value=id_)
  File "C:\Users\IRH-PC\AppData\Local\Programs\Python\Python36\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 784, in find_element
    'value': value})['value']
  File "C:\Users\IRH-PC\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\IRH-PC\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: [id="select_type"]

请大神指点,这是用IDE录制出来的,定位方式,但是用代码写出来就报错,为啥?


作者: 掉渣饼    时间: 2017-8-29 09:20
xz=driver.find_element_by_id("select_type")
xz.find_element_by_xpath("//option[@value='2']").click()
作者: anne_zhang    时间: 2017-8-29 10:03
掉渣饼 发表于 2017-8-29 09:20
xz=driver.find_element_by_id("select_type")
xz.find_element_by_xpath("//option[@value='2']").click( ...

试了您写的方式,我发现还是定位不到Unable to locate element: [id="select_type"]

试了好几种方式都不可以,太匪夷所思了。
作者: 掉渣饼    时间: 2017-8-29 12:57
anne_zhang 发表于 2017-8-29 10:03
试了您写的方式,我发现还是定位不到Unable to locate element:

试了好几种方式都不可以,太匪夷所思 ...

是不是在你定位的元素页面源码中存在iframe或者frame,要是有iframe或者frame需要先定位到iframe,再定位它下面的元素
作者: anne_zhang    时间: 2017-9-4 11:02
掉渣饼 发表于 2017-8-29 12:57
是不是在你定位的元素页面源码中存在iframe或者frame,要是有iframe或者frame需要先定位到iframe,再定位 ...

<html>
<head>
<body>
<div class="row">
<form id="form1" method="post" action="./Home.aspx">
<div class="aspNetHidden">
<script type="text/javascript">
<div class="aspNetHidden">
<div>
<div class="row">
<div class="col m2 l2">
<div id="divSearch" class="col m19 l9 offset-s5 div_background" style="display: block;">
<div id="person_query" class="col m12 l12">
<p class="home_title">个人查询</p>
<div class="row boarder_color">
<div class="col m5 l5">
<div class="row">
<div class="col m2 l2">查询类型</div>
<div class="col m10 l10">
<select id="select_type" class="browser-default" name="select_type">
</div>
</div>
<div class="row">
firebug看到就这些,没有用到iframe /frame




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2