2017-07-14 77 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調用正在由於權限拒絕。與應用而不是硒的缺陷。