Python 如何单击Dojo网站上的按钮
我在使用python+selenium+phantomjs进行自动web测试时遇到了一个问题。Python 如何单击Dojo网站上的按钮,python,selenium,dojo,Python,Selenium,Dojo,我在使用python+selenium+phantomjs进行自动web测试时遇到了一个问题。 web是Dojo重型web应用程序。为了修改记录,我需要首先单击drop_按钮修改,然后单击“修改” 但它总是报告找不到元素 有人能帮我调查一下吗?“modify”元素是display:none,我试图使用JS启用它,但失败了 以下是修改元素 <div class="dijit dijitLeft dijitInline dijitDropDownButton" dojoattachevent
web是Dojo重型web应用程序。为了修改记录,我需要首先单击drop_按钮
修改代码>,然后单击“修改”
但它总是报告找不到元素
有人能帮我调查一下吗?“modify”元素是display:none
,我试图使用JS启用它,但失败了
以下是修改代码>元素
<div class="dijit dijitLeft dijitInline dijitDropDownButton" dojoattachevent="onmouseenter:_onMouse,onmouseleave:_onMouse,onmousedown:_onMouse,onclick:_onDropDownClick,onkeydown:_onDropDownKeydown,onblur:_onDropDownBlur,onkeypress:_onKey" widgetid="dijit_form_DropDownButton_6">
<div class="dijitRight">
<button class="dijitStretch dijitButtonNode dijitButtonContents" type="button" dojoattachpoint="focusNode,titleNode" wairole="button" waistate="haspopup-true,labelledby-dijit_form_DropDownButton_6_label" role="button" aria-haspopup="true" aria-labelledby="dijit_form_DropDownButton_6_label" id="dijit_form_DropDownButton_6" tabindex="-1" aria-valuenow="" aria-disabled="false">
<div class="dijitInline " dojoattachpoint="iconNode"></div><span class="dijitButtonText" dojoattachpoint="containerNode,popupStateNode" id="dijit_form_DropDownButton_6_label">修改</span><span class="dijitA11yDownArrow">▼</span>
</button>
</div>
</div>
代码如下:
menu = driver.find_element_by_css_selector("#dijit_form_DropDownButton_0")
hidden_submenu = driver.find_element_by_css_selector("#dijit_MenuItem_31 > td:nth-child(2)")
actions = webdriver.common.action_chains.ActionChains(driver)
actions.move_to_element(menu)
actions.click(hidden_submenu)
actions.perform()
我看到您的代码与的示例非常相似,为什么不简化它呢?。您正在移动到修改代码>菜单,但不执行单击,因此当您尝试单击子菜单时,将找不到该子菜单
无论如何,如果点击修改代码>已执行,但您仍然无法单击子菜单,我建议在单击之间添加硬编码的等待时间,如:
import time
time.sleep(3)
如果有效,请执行动态等待时间而不是硬编码等待时间您是否可以单击修改代码>使用selenium。@andyw您不能单击哪个元素修改代码>下拉列表或修改元素?请试用您的代码。@cruisepandey,是的,我可以单击{”修改"} 下拉按钮,但不知道如何查找并单击{“modify”}元素。
import time
time.sleep(3)