2016-08-22 66 views
0

我試圖使用webdriver的execute_script()來運行jquery,但沒有運氣。下面是我執行的步驟:在jquery上使用webdriver執行腳本不起作用

  1. 硒/ webdriver的,運行execute_script()如下:

    jquery_string = 'return $(\'[id="ClusterMembers:ClusterMembersScreen:ttlBar"]\')'  
    web_element = driver.execute_script(jquery_string) 
    

    它返回的錯誤爲:

    WebDriverException:消息:$是未定義

    構建信息:版本:'2.53.0' ...

  2. 保持從調試器上面的函數調用, 去站立FF瀏覽器從硒客戶端機器, 和類型,從開發者控制檯下同jQuery的字符串(鍵入「允許粘貼」後):

    $('[id="ClusterMembers:ClusterMembersScreen:ttlBar"]') 
    

    =>控制檯運行相同的上面的代碼:(1)前按預期

  3. 添加以下代碼返回

    =>返回從調試器「web_element」的值不是webelement對象,而是一個字典以下的

    {'mouseout': 'function (data, fn) {\n\t\treturn arguments.length > 0 ?\n\t\t\tthis.on(name, null, data, fn) :\n\t\t\tthis.trigger(name);\n\t}', .... 
    

    我曾嘗試使用最新版本的jQuery(3.1) ,但仍然有同樣的失敗。

我在想,如果這個問題有什麼做的「允許粘貼」由FF或別的東西,我一直缺少必需?我很感激,如果有人可以擺脫一些光明?

+0

我看到你的腳本腳本實際上是一個jQuery選擇器。爲什麼不使用常規方法從硒中找到選擇器?也可以使用外部雙引號來幫助增加額外的內部單引號。 – lauda

+0

是的,我使用的是jquery,而這篇文章就是爲了這個目的。 –

回答

0

而不是使用$嘗試使用這個的:

jquery_string = "jQuery('[id*=ClusterMembers][id*=ClusterMembersScreen][id*=ttlBar]');" 

儘量避免使用「:」在選擇,它可能會導致錯誤。

相關問題