selenium怎么点击JS菜单?
公司内部网站,像这种菜单怎么点击"+"展开?
用元素定位driver.find_element_by_xpath('//*[@id="handler1"]').click(),提示找不到元素..
<div class="TreeNode" nowrap="">
<a href="javascript:void window.TV.openHandler(1);" target="_self">
<img id="handler1" src="http://10.123.123.123:8088/EPD3SFC/Images/Rminus.gif" align="absmiddle">
</a>
<a target="_self" href="javascript: void window.TV.openFolder(1)">
<img id="icon1" src="http://10.123.123.123:8088/EPD3SFC/Images/root.gif" align="absmiddle">
</a>
<span><a id="node1" class="normal" href="javascript:void(0)" target="_self" onclick="window.TV.setSelected(1)">PCBA</a></span>
</div>
这个不是原生html元素吧 kogawananari 发表于 2020-12-14 21:08
这个不是原生html元素吧
这个是在浏览器按F12抓出来的 1.看看是否有iframe,有就切换到相应iframe
2.driver.page_source看看源码,你想要的元素是否存在
3.鼠标模拟事件尽量用ActionChains类
4.还是不行,再联系我 西瓜味的苹果 发表于 2020-12-15 09:29
1.看看是否有iframe,有就切换到相应iframe
2.driver.page_source看看源码,你想要的元素是否存在
3.鼠标 ...
多谢回复!
有iframe,切换到iframe再点击它下面的元素没反应,我再研究研究..
iframe=driver.find_element_by_tag_name('iframe')
driver.switch_to.frame(iframe)
pcba=driver.find_element_by_xpath('//*[@id="handler101"]')
pcba.click() 你可以写一个js代码(对一个元素添加hover事件),让driver执行,看看是否真的切换成功,如果成功,你在console窗口,写一个对应你操作的js看看成功了就行,然后在程序中直接用js就行了,应该很简单,js会写对吧 还要注意一点的是,查找元素的时候,注意加载等待,你可以用隐式等待或显示等待都可以,你这种情况推荐使用显式等待 西瓜味的苹果 发表于 2020-12-15 10:59
还要注意一点的是,查找元素的时候,注意加载等待,你可以用隐式等待或显示等待都可以,你这种情况推荐使用 ...
好的,谢谢!{:5_109:} 有两个iframe,第一个是我要找的菜单的,第二个是主窗口的,
用下面的方法都没有切换到iframe
# iframe=wait.until(EC.presence_of_element_located((By.TAG_NAME,'iframe')))
iframe=wait.until(EC.presence_of_all_elements_located((By.TAG_NAME,'iframe')))
# iframe=driver.find_elements_by_tag_name('iframe')
driver.switch_to.frame(iframe)
页:
[1]