Eu tenho um script de web scraping Python/Selenium muito simples, como segue:
from re import L
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
cService = webdriver.ChromeService(executable_path="C:\\Users\\Frank\\Documents\\Visual Studio 2022\\Projects\\IV3_WebsiteAutomation\\chromedriver.exe")
driver = webdriver.Chrome(service = cService)
driver.get("https://app.iv3.us/login")
print(driver.title)
search_bar = driver.find_element("name", "userName")
search_bar.send_keys("[email protected]")
search_bar = driver.find_element("name", "password")
search_bar.send_keys("xxxxxxxxxxxxxxx")
search_bar.send_keys(Keys.RETURN)
# res = driver.find_element(By.XPATH(".//a[contains(@href,'View Active')]"))
# res = driver.find_element(By.XPATH("//a[contains(@href,'View Active')]"))
XXX = driver.find_element(By.XPATH("//div[./h4[text()='Moved from Registered Address']]//a[text()='View Active']"))
driver.close()
Quando executada, a linha 'XXX = driver.find_element...' produz o temido erro 'str' object is not callable .
Pesquisar o erro no Google me levou a vários posts descrevendo como esse erro é causado pela tentativa de usar uma palavra reservada do Python para uma variável, mas não consigo ver como isso pode estar acontecendo no meu script; Cheguei ao ponto de alterar o nome da variável 'res' para 'XXX', mas isso não mudou nada.
Será que esta linha:
from selenium.webdriver.common.by import By
e seu uso subsequente na última linha do script está causando o problema? Eu obtive esse uso no tutorial 'Locating Elements' do Selenium , então ficaria surpreso se esse fosse o problema, mas ....
TIA,
Frank
[editar]: por solicitação de @OneCricketeer, incluí o rastreamento do erro:
IV3 'str' object is not callable Stack trace: > File "C:\Users\Frank\Documents\Visual Studio 2022\Projects\IV3_WebsiteAutomation\IV3_WebsiteAutomation.py", line 20, in <module> (Current frame) > XXX = driver.find_element(By.XPATH("//div[./h4[text()='Moved from Registered Address']]//a[text()='View Active']")) >TypeError: 'str' object is not callable Loaded 'main' Loaded 'runpy'
Esta linha não tem sintaxe correta.
Deveria estar no formato
Para ver mais claramente
Para atualizar seu código,