2017-07-14 73 views
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> 
+0

真正有关的部分是'即使我通过硒打开浏览器时手动执行它。这似乎意味着用于启动浏览器的选项可能与默认值不同(在没有Selenium的情况下启动时)。我相信你应该专注于设置浏览器选项以使手册部分起作用。然后,Selenium的send_keys应该可以工作。我不知道配置问题会是什么。 –

回答

0

大量的调试后,似乎AJAX调用正在由于权限拒绝。与应用而不是硒的缺陷。