我试图滚动到页面上的特定元素但在我这样做之前我试图将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,但应如何修改?
答案 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);
,但它们不一定是“错误的”,但它们是多余的。