Python Selenium未使用xpath提取信息
我试图使用selenium从数据库中提取一些信息。但我无法在selenium中使用xpath获取这些信息 在下图中,我想提取突出显示的信息。 这是我正在使用的代码Python Selenium未使用xpath提取信息,python,selenium,xpath,css-selectors,webdriverwait,Python,Selenium,Xpath,Css Selectors,Webdriverwait,我试图使用selenium从数据库中提取一些信息。但我无法在selenium中使用xpath获取这些信息 在下图中,我想提取突出显示的信息。 这是我正在使用的代码 try: path = "//div[@id='desktop_buybox']//div[@class='a-box-inner']//span[@class='a-size-small')]" seller_element = WebDriverWait(driver, 5).until(
try:
path = "//div[@id='desktop_buybox']//div[@class='a-box-inner']//span[@class='a-size-small')]"
seller_element = WebDriverWait(driver, 5).until(
EC.visibility_of_element_located((By.XPATH, path)))
except Exception as e:
print(e)
当我运行这段代码时,它显示seller_element=WebDriverWaitdriver,5.5.1存在错误,但没有说明它是什么异常
我试着在线查看,发现当selenium在网页中找不到元素时会发生这种情况
但我认为我所指明的道路是正确的。请帮帮我
提前谢谢
[编辑-1]
这是我得到的例外
Message:
XPath可以是这样的。你可以缩短这个
CSS选择器可以是,等等
.a-section.a-spacing-none.a-spacing-top-base
.a-size-small.a-color-secondary
亚马逊正在根据您居住的国家更新其内容,因为我点击了您提供的链接,在那里我没有找到您正在寻找的元素,因为该项目在印度没有销售 因此,简而言之,如果你坐在印度,试图找到你的元素,它不在那里,但当你改变位置到美国。它正在那里出现
解决方案-更改位置我认为原因是xpath表达式不正确 以以下元素为例,表示跨度有两类:
<span class="a-size-small a-color-secondary">
或CSS选择器作为
span.a-size-small.a-color-secondary
要打印来自Amazon.com并由Amazon.com出售的某个元素的发货,您必须对所定位的元素的可见性进行诱导,并且您可以使用以下任一方法:
使用CSS_选择器和get_属性:
print(WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, "//div[@class='a-section a-spacing-none a-spacing-top-base']/span[@class='a-size-small a-color-secondary']"))).text)
使用XPATH和文本属性:
print(WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, "//div[@class='a-section a-spacing-none a-spacing-top-base']/span[@class='a-size-small a-color-secondary']"))).text)
注意:您必须添加以下导入:
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
您可以在中找到相关的讨论
奥特罗
链接到有用的文档:
方法获取元素的给定属性或属性。
属性返回元素的文本。
这就产生了同样的错误。这可能与网站的设计方式有关吗?为什么不使用CSS选择器而不是xpath来获取元素?如果你试一下,那有用吗?我也试过。有多个元素具有相同的类。所以selenium没有得到我想要的正确信息。这是什么问题?路径似乎根本不正确。@arundeepchohan selenium无法访问我要提取的元素。我已经在问题中发布了代码。请看一看。
print(WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, "//div[@class='a-section a-spacing-none a-spacing-top-base']/span[@class='a-size-small a-color-secondary']"))).text)
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC