Python Selenium WebElement元素-无效的语法

红花菜豆

我试图滚动到页面上的特定元素,但在此之前,我试图将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,但是应该如何修改呢?

Pythonista

Python不是Java。(WebElement元素= ...;)

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

尽管您可以By在上面使用,但是find_element_by_idimo更具可读性。

编辑:

同样对于第二位

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

我已经有一段时间没有使用上面的了,所以实际上可能是以下我不记得atm的情况:

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

您还可以滚动到这样的元素:

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

Thread.sleep(500);也行不通,您可以在行;删除分号,它们不一定是“错误的”,但它们是多余的。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章