Href在浏览器中显示不同的值,在selenium python中显示`javascript:`
我目前正在python上工作,我应该在python中使用selenium提取所有href值数据 当我访问网站并通过开发者工具登录时,它会显示一个适当的href值,但当我使用selenium使用Href在浏览器中显示不同的值,在selenium python中显示`javascript:`,python,selenium,xpath,css-selectors,webdriverwait,Python,Selenium,Xpath,Css Selectors,Webdriverwait,我目前正在python上工作,我应该在python中使用selenium提取所有href值数据 当我访问网站并通过开发者工具登录时,它会显示一个适当的href值,但当我使用selenium使用元素时,它会打印javascript: 有没有解决方案可以让我获得href值而不是“javascript:”呢 代码试用: driver = webdriver.Firefox(executable_path='geckodriver.exe') driver.get('website Name') a
元素时,它会打印javascript:
有没有解决方案可以让我获得href值而不是“javascript:”呢
代码试用:
driver = webdriver.Firefox(executable_path='geckodriver.exe')
driver.get('website Name')
a = driver.find_elements_by_class_name('tupData')
print(a.get_attribute('href'))
它只打印:javascript:
是否有一种解决方案可以让我获得href值而不是javascript:?尝试查找包含href属性的锚元素,而不是父元素
elements = driver.find_elements_by_xpath("//*[@class='tupData']//a")
for element in elements:
print(element.get_attribute('href'))
您需要到达
标记,才能检索href
属性,以获取位于()的元素的可见性,您可以使用以下任一解决方案:
- 使用
CSS\u选择器
:
print(WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.CSS_SELECTOR, "a.userName.name[href*='rexdex']"))).get_attribute("href"))
- 使用
XPATH
:
print(WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, "//a[@class='userName name' and contains(@href,'rexdex')]"))).get_attribute("href"))
- 注意:您必须添加以下导入:
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
类名“tupData”正确吗?我在截图中看到一个不同的类名。您得到的输出是什么?@Sureshmani是的,它是正确的。。。tupData是“用户名”的父项。。我也尝试了锚标记类名。。。我得到的输出是“href=javascript:”即存在多个类名为“tupData”的匹配项。我看到您使用了-find_元素。如果这是真的,那么“a”可能包含1个以上的元素。您必须循环获取href属性。您必须从标记中获取href属性。从您正在声明的内容(以及您的代码显示的内容)来看,您并不是从A标记中获得它的。发布一些周围的HTML(作为文本,而不是图像),我们可能会更好地帮助您。听起来你只需要修好你的定位器就可以得到A标签,它会工作的。。。问题是您需要的定位器是什么。我尝试使用xpath方法。。它等待了20秒,然后给了我一个错误,“NameError(“name'href'未定义”),“您能用完整的错误堆栈跟踪更新问题吗?