selenium定位不到元素,求解

如图用了各种定位语句。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