2016-05-29 100 views
1

我試圖滾動到特定元素的頁面上,但我做之前,我正在嘗試設置myelement成爲WebElement對象,繼承人的代碼: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元素= ...;)

這裏給documentation一個鏈接,Python方法等

你真正想要的是:

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") 

雖然你可以在上面使用Byfind_element_by_id是一個更可讀的IMO。

編輯:

同樣地,對於第二位

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

非常感謝! –