0
我目前正在尝试自动化我们的Web应用程序的一部分,主要是一种类似于facebook的@mentioning形式。在前端,当用户在文本输入中键入@时,API将调用用户列表并将其显示在出现的框中。此元素当前处于DOM的末尾,并且在@键入时才会触发javascript。Javascript框没有被触发在硒
我的硒代码使用send_keys填充@namehere但用户窗口元素没有出现,即使我做手工,而浏览器是通过硒打开
我一直使用从upkey事件试过动作链,注入JavaScript触发事件,单击回到文本输入,以确保它的重点,但没有任何作品。这发生在铬和火狐
字面搜索到处,任何想法?
特征步骤:
And i create a post titled "@James"
实现:
@when('i create a post titled "([^"]*)"')
def step_impl(context, text):
page = ActivityStreamPage.NewPost(context)
page.post_input.click()
page.post_input.send_keys(text)
元件:
'post_input': (By.CLASS_NAME, "js-post-textarea")
网络元件:
<div class="js-post-textarea js-edit-content editor__editable"
contenteditable="true" autocomplete="off" autocorrect="off"
autocapitalize="off" placeholder="Write a post or @mention to notify
someone"><span class="atwho-query">@</span><br></div>
用户框:
<div class="atwho-view" id="at-view-64" style="display: none; top:
135px; left: 440px;">
<ul class="atwho-view-ul">
<li class="mention__item cur">
<p class="mention__notice">
<span>@Group</span>
"Notify everyone in this Group."
</p>
</li>
</ul>
</div>
真正有关的部分是'即使我通过硒打开浏览器时手动执行它。这似乎意味着用于启动浏览器的选项可能与默认值不同(在没有Selenium的情况下启动时)。我相信你应该专注于设置浏览器选项以使手册部分起作用。然后,Selenium的send_keys应该可以工作。我不知道配置问题会是什么。 –