我试图滚动到页面上的某个特定元素,但在此之前,我试图将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,但应该如何修改?
最佳答案
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
在imo中更具可读性。编辑:
同样的第二点
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);
也不起作用,您可以删除行后的分号,它们不一定是“错误的”,但它们是多余的。关于python - Python Selenium WebElement元素-语法无效,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37515755/