如何解决“ SyntaxError:无法对'Document'执行'evaluate':”?

时间:2019-09-27 17:18:54

标签: python python-3.x selenium-chromedriver

我正在尝试复制元素的xpath,但一直在说xpath不正确

这是我完成的代码:

from selenium import webdriver
driver = webdriver.Chrome()
driver.get("https://www.bol.com/nl/v/bananago-nl/1067588/")
x = driver.find_element_by_xpath("//*[@id=js_overview']/ul/li[2]/div/div[2]/p/text()[2]")
print(x)

我要复制的元素是文字“ 12 beoordelingen”。让我知道您是否需要更多信息

2 个答案:

答案 0 :(得分:0)

您缺少“ js_overview”中的初始单引号。

答案 1 :(得分:0)

要获取文本12 beoordelingen,您需要先诱导WebDriverWaitelement_to_be_clickable()来获取元素,然后

推导JavaScript执行器execute_script()并获得lastChild textContent

尝试下面的代码。

from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium import webdriver

driver = webdriver.Chrome()
driver.get("https://www.bol.com/nl/v/bananago-nl/1067588/")
element=WebDriverWait(driver,20).until(EC.element_to_be_clickable((By.XPATH,"//div[@id='js_overview']//div[@class='media__body']/p")))
print(driver.execute_script('return arguments[0].lastChild.textContent;', element))