Python Selenium WebElement元素 - 语法无效

时间:2016-05-29 22:58:55

标签: python selenium-webdriver

我试图滚动到页面上的特定元素但在我这样做之前我试图将myelement设置为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,但应如何修改?

1 个答案:

答案 0 :(得分:4)

Python不是Java。 (WebElement element = ...;)

这是python方法等的documentation的链接。

你真正想要的是:

Object.create(null)

虽然您可以在上面使用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

我有一段时间没有使用上述内容,所以它实际上可能是以下我不记得atm:

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);,但它们不一定是“错误的”,但它们是多余的。