2016-05-29 6 views
1
私はページ上の特定の要素にスクロールしようとしているが、私はやる前に、私はWebElementオブジェクト、HERESにコードするMYELEMENTを設定しようとしていることを

PythonのセレンWebElement要素 - 無効な構文

from selenium import webdriver 

browser.get("http://www.agoda.com/the-coast-resort-koh-phangan/hotel/koh-phangan-th.html") 
WebElement myelement = browser.findElement(By.id("next-page")); 

しかし、それはエラーで戻ってくる:

WebElement myelement = browser.findElement(By.id("next-page")); 
       ^
SyntaxError: invalid syntax 

私は何をしないのですか?

更新:Javaを作成しようとしていたようです。最初の返信は述べているが、その後、私の実際のコードからの変更の私の質問のようなものがあるよう:

エラーを与える
from selenium import webdriver 
from selenium.webdriver.common.by import By 

browser = webdriver.Firefox() 
browser.get("http://www.agoda.com/the-coast-resort-koh-phangan/hotel/koh-phangan-th.html") 

browser.find_element_by_xpath("//a[@id='next-page']").click() 

myelement = browser.find_element(By.id("next-page")); 
((JavascriptExecutor) browser).executeScript("arguments[0].scrollIntoView(true);", element); 
Thread.sleep(500); 

browser.find_element_by_xpath("//a[@id='next-page']").click() 

File "<ipython-input-22-bb983f3ceca8>", line 10 
    ((JavascriptExecutor) browser).executeScript("arguments[0].scrollIntoView(true);", element); 
          ^
SyntaxError: invalid syntax 

はおそらく再びJavaの書き込みが、どのようにこれを改正しなければなりません?

答えて

3

PythonはJavaではありません。 (WebElement要素= ...;)ここで

はPythonの方法などについてdocumentationへのリンクです

あなたが実際にしたいことは次のとおりです。

from selenium import webdriver 

browser = webdriver.Firefox() 
browser.get("http://www.agoda.com/the-coast-resort-koh-phangan/hotel/koh-phangan-th.html") 
myelement = browser.find_element_by_id("next-page") 

あなたは上記でByを使用することができますが、 find_element_by_idはもう少し読みやすいです。

編集:第2ビットのために同様に

browser.execute_script("arguments[0].scrollIntoView();", element) 

私はしばらくの間で上記を使用していないので、それは実際に私は気圧覚えていません、次のことがあります

browser.execute_script("return arguments[0].scrollIntoView();", element) 

このような要素にスクロールすることもできます。

browser.execute_script("window.scrollTo(0, %d)" % element.location['y']) 

Thread.sleep(500);も動作しません。行の後にセミコロン;を削除することはできますが、必ずしも「間違っている」とは限りませんが、冗長です。

+0

ありがとう、それは意味がありますが、私は問題がなかったと思ったように私の質問を更新しました。 –

+0

編集を参照してください:) – Pythonista

+1

ありがとうございました! –