from selenium import webdriver
from selenium.webdriver.common.keys import Keys
elem = driver.switch_to_active_element()
elem.send_keys('a')
我想将密钥发送到页面上当前活动的元素,但我不知道如何从驱动程序获取活动元素。我需要它,因为该元素上没有名称,id,类等。我找到了Java代码,Python代码(上面写的),但没有结果。
这里是页面,对象""没有attrs。如何选择?
<div action-name="menu-holder" class="uiMenuButtonSelectionHolder">
<a href="javascript:;" class="choiceMenuClose" action-name="choice-menu-close"></a>
<div style="top: 0px; left: 0px;" class="uiInlineBlock uiMenuHolder">
<div>
<input type="text">
</div>
答案 0 :(得分:10)
在我遇到this link.
之前,我一直在努力解决这个问题 switch_to_active_element()
已被弃用,我们应该使用switch_to.active_element
所以,它应该是:
elem = driver.switch_to.active_element
答案 1 :(得分:0)
您可以通过css选择器识别输入标签,如下所示。请查看this以更好地了解选择器
elem = driver.find_element_by_css_selector('div.uiInlineBlock input')
elem.send_keys('a')
选择器可以读取为input tag, descendant to the div with class name _uiInlineBlock_
。
希望你没有其他同一个类的div,在这种情况下你必须使用find_elements_by_css_selector
并从返回的元素列表中选择你想要的元素send_keys
至。
编辑:
如果元素不可见,您可以浏览使其可见的流程,也可以执行javascript来查找和设置值
driver.execute_script("document.querySelector('div.uiInlineBlock input').setAttribute('value', 'a');")