2016-06-24 4 views
1

現在、私は現在walmart's job siteを使用しています。これはPythonでSeleniumを使用してログインしようとしています。私はこの行からnum個を印刷するときPython SeleniumでJavascriptから変数を返してセレンで更新する

from selenium import webdriver 
from selenium import webdriver 
from selenium.common.exceptions import NoSuchElementException 
from selenium.common.exceptions import NoSuchWindowException 
from selenium.common.exceptions import WebDriverException 
import argparse 
import time 
import traceback 
import sys 

while True: 
     try: 

      func_name = driver.find_element_by_id('extension_4').get_attribute('onkeyup') 
      func_name = func_name[func_name.index(':')+1:] 
      num = driver.execute_script('return ' + func_name) 

      #js_functions.append(num) 

      print repr(num) 

     except NoSuchElementException: 
      exc_info = sys.exc_info() 
      traceback.print_exc() 

     except NoSuchWindowException: # No Need to Continue if User closes Window 
      break; 

     try: 
      driver.execute_script('return username(arguments[0])', '[email protected]') 
     except WebDriverException: 
      exc_info = sys.exc_info() 
      traceback.print_exc() 

     time.sleep(2) 

:これまでのところ私は、次のコードを使用してい

num = driver.execute_script('return ' + func_name). 

これは、ユーザー名とパスワードを表示します。それは私が間違って何をやっている、そのような機能がないと文句を言い

driver.execute_script('return username(arguments[0])', '[email protected]') 

:私は次の行に(例えば、ユーザ名用)指定された機能を更新しようか?私は数週間これに固執してきましたが、今や指導や解決が本当に助けになります。

答えて

2

あなたはJSを使用する特定の理由がない限り、セレンはあなたのためにこれを行うことができます。

driver.find_element_by_id('username').send_keys(username_variable) 
driver.find_element_by_id('password').send_keys(password_variable) 
driver.find_element_by_id('event-submit').click() 

あなたは他のいくつかの問題がありましたか?

+0

これは機能しません。私がJSに言及した理由は、ソースコードを見るとjavascriptにそのフォーム変数があるように見えるからです。 – user3667623

関連する問題