如图用了各种定位语句。id,css,xpath,始终说无法定位
你看看是不是在ifram标签里面了?这个要切换过去
把代码贴出来
你这moreQuery是不是要通过点击之后,才能加载
<body> <!-- 存放权限编号的隐藏域,id必须是menuid,不能删除 --> <input type="hidden" id="menuid" value="10221040"/> <!-- 查询区域 --> <div class="query-conditions" id="queryDiv"> <form method="post" id="queryForm"> <!-- 简单查询区域 --> <table class="query-table" align="center"> <tr> <td width="11%" class="text-right"><span>编号:</span></td> <td width="22%"><input id="weldnum" name="weldnum" class="easyui-validatebox input_bg" /></td> <td align="right" colspan="2"> <a href="#" class="easyui-linkbutton query-btn" onclick="queryConsDcsLinecompletionpoint()"><span>查询</span></a> <a href="#" class="easyui-linkbutton clear-btn" onclick="clearQueryForm('queryForm',true,true,true,true,'consDcsLinecompletionpointdatagrid')"><span>清空</span></a> <a href="#" id='moreQuery' class="easyui-linkbutton more-query-btn" iconCls="accordion-expand" iconAlign="right"><span>高级搜索</span></a> </td> </tr> </table>
driver.find_element_by_id('userid').click() # 点击用户名输入框 driver.find_element_by_id('userid').clear() # 清空输入框 driver.find_element_by_id('userid').send_keys(username) # 自动敲入用户名 driver.find_element_by_id('pass').click() # 点击密码输入框 driver.find_element_by_id('pass').send_keys(password)#输入密码框 driver.find_element_by_id('login').click() driver.implicitly_wait(3) driver.find_element_by_xpath('//*[@id="systemSection"]/fieldset/dl[3]').click() driver.find_element_by_xpath('//*[@id="left-container"]/div[2]/div[1]/div[1]').click() driver.find_element_by_xpath('//*[@id="_easyui_tree_11"]').click() driver.implicitly_wait(3) #driver.find_element_by_xpath('//*[@id="queryDiv"]')#就这一步找不到元素,下面几个都是尝试过的 #driver.find_element_by_xpath('//*[@id="queryForm"]/tr/td[3]/a[3]').click() #driver.find_element_by_css_selector('.l-btn-icon-right').click() #driver.find_elements_by_css_selector('.easyui-linkbutton more-query-btn') time.sleep(3)
隐式等待implicitly_wait的问题吗?可以换 time.sleep()强制等10秒或更久,如果能定位到元素就是隐式等待的问题了。
也可以用显示等待
## 显示等待
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions
...
element = WebDriverWait(driver, 5).until(expected_conditions.presence_of_element_located(('id', 'moreQuery')))
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632
非常感谢您使用有问必答服务,为了后续更快速的帮您解决问题,现诚邀您参与有问必答体验反馈。您的建议将会运用到我们的产品优化中,希望能得到您的支持与协助!
速戳参与调研>>>https://t.csdnimg.cn/Kf0y