2016-06-24 20 views
0

ここで最初に質問しました。JS onclick関数の復帰を擦ってください

ウェブサイトのJS onclick機能によって生成されたURLをスクラップする必要があります。だから、セレンは仕事をすることができると思うが、他のタブやウィンドウを開かずにコードを書く方法を理解することはできず、可能かどうかわからない。

「TRクラス= "リニャレスは" onclickの= "javascriptを::GRV(0,1,1);" ここ

はonclickのJS機能です>

だから、基本的に必要urlはこの関数によって返されます。

私のお手伝いをお願い致します。

+0

関数のGRV()は単にURLを返すことに少し奇妙なようです。それはどこでもそれを印刷しない、ブラウザをリダイレクトする、またはそのような何か? – user1337

+0

実際、URLを動的に生成して新しいタブを開きます。それは隠された目的地オープンのようなものです。 – leo04

+0

関数grv()は常に同じであるか、そのような関数をスクラップする一般的な場合を解決しようとしていますか? – user1337

答えて

0

が新しいウィンドウへの切り替えについての例を参照してくださいとバック下に切り替える:

driver.get("your-application-URL") 
time.sleep(3) 
window_before = driver.window_handles[0] 
windowHandlesAllBefore = driver.window_handles 
linkElements = driver.find_elements_by_css_selector("[onclick='javascript:grv(']") 

for aLink in linkElements: 
    aLink.click() 
    time.sleep(3) 
    newWindowHandle = list(set(driver.window_handles) - set(windowHandlesAllBefore))[0] 
    print(newWindowHandle) 
    driver.switch_to.window(newWindowHandle) 
    print(driver.current_url) 
    driver.close() 
    driver.switch_to.window(window_before) 
+0

共有ありがとうございます!私はちょうど新しいウィンドウ/タブのURLが必要なので、ブラウザにできるだけ早く読み込ませるスタイル(無画像、無重力要素)を使わないようにする方法はありますか? – leo04

+0

@ leo04 WebdriverをPhantomJSに変更するだけです。例[ここ](http://stackoverflow.com/questions/13287490/is-there-a-way-to-use-phantomjs-in-python) – Buaban

+0

おかげさまで、Buaban。あなたのコードの5行目に問題があります。 InvalidSelectorException:メッセージ:無効なセレクタ:無効なまたは不正なセレクタが指定されました – leo04

関連する問題