'str' object is not callable error while using 'Find an element' by link text or XPATH in Selenium Python
'str' object is not callable error while using 'Find an element' by link text or XPATH in Selenium Python
我是编码新手,正在尝试通过 Python 学习 Selenium。我想点击下载按钮,但出现错误“'Str' object not callable”。使用 Python 3.10 和 Selenium 4.1.3
这是我的代码:
import os
from selenium import webdriver
from selenium.webdriver.common.by import By
os.environ['PATH'] += r"C:\SeleniumDrivers"
driver = webdriver.Chrome()
driver.get("https://www.python.org/downloads")
driver.implicitly_wait(10)
my_element = driver.find_element(By.XPATH("//a[contains(@href,'Download Python 3.10.4')]"))
my_element.click()
我假设您想单击“下载 Python”。如果是,那么这段代码就可以完成工作,
my_element = driver.find_element(by = By.XPATH, value = "//*[@id='touchnav-wrapper']/header/div/div[2]/div/div[3]/p/a")
my_element.click()
你的代码有两个问题-
你做到了 By.XPATH("//a[contains(@href,'Download Python 3.10.4')]")
。这里By.XPATH
其实不是一个函数,只是一个值为“XPATH”的变量,所以不能在里面传递参数。这就是为什么您会收到 'str' object is not callable 错误。对于 XPATH,您需要使用类似 driver.find_element(by = By.XPATH, value = <XPATH>)
.
的内容
即使您上面所做的是正确的,您传递的 XPATH 也是不正确的。正确的 XPATH 是 my_element = driver.find_element(by = By.XPATH, value = "//*[@id='touchnav-wrapper']/header/div/div[2]/div/div[3]/p/a")
.
我是编码新手,正在尝试通过 Python 学习 Selenium。我想点击下载按钮,但出现错误“'Str' object not callable”。使用 Python 3.10 和 Selenium 4.1.3
这是我的代码:
import os
from selenium import webdriver
from selenium.webdriver.common.by import By
os.environ['PATH'] += r"C:\SeleniumDrivers"
driver = webdriver.Chrome()
driver.get("https://www.python.org/downloads")
driver.implicitly_wait(10)
my_element = driver.find_element(By.XPATH("//a[contains(@href,'Download Python 3.10.4')]"))
my_element.click()
我假设您想单击“下载 Python”。如果是,那么这段代码就可以完成工作,
my_element = driver.find_element(by = By.XPATH, value = "//*[@id='touchnav-wrapper']/header/div/div[2]/div/div[3]/p/a")
my_element.click()
你的代码有两个问题-
你做到了
的内容By.XPATH("//a[contains(@href,'Download Python 3.10.4')]")
。这里By.XPATH
其实不是一个函数,只是一个值为“XPATH”的变量,所以不能在里面传递参数。这就是为什么您会收到 'str' object is not callable 错误。对于 XPATH,您需要使用类似driver.find_element(by = By.XPATH, value = <XPATH>)
.即使您上面所做的是正确的,您传递的 XPATH 也是不正确的。正确的 XPATH 是
my_element = driver.find_element(by = By.XPATH, value = "//*[@id='touchnav-wrapper']/header/div/div[2]/div/div[3]/p/a")
.