首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何调整这一行selenium代码以获取此项的状态信息?

如何调整这一行selenium代码以获取此项的状态信息?
EN

Stack Overflow用户
提问于 2022-04-27 23:58:14
回答 2查看 90关注 0票数 1

我有这一行代码,我试图用它来获得一个项目的状态。下面是代码行:

代码语言:javascript
运行
复制
item_status = driver.findElement(By.className("status-info")).getText();

我不知道如何调整它以检索这里看到的文本:

代码语言:javascript
运行
复制
from selenium import webdriver

from selenium.webdriver.chrome.options import Options

from selenium.webdriver.support.ui import WebDriverWait

from selenium.webdriver.common.by import By

from selenium.webdriver.support import expected_conditions as EC


options=Options()
driver=webdriver.Chrome(options=options)

#Directing to site
driver.get("https://www.amazon.co.uk/Nintendo-Switch-OLED-Model-Neon/dp/B098TNW7NM/ref=sr_1_3?keywords=Nintendo+Switch&qid=1651147043&sr=8-3");
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "/html/body/div[2]/span/form/div[3]/span[1]/span/input"))).click()
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-04-28 07:47:47

当你这样做的时候

代码语言:javascript
运行
复制
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "/html/body/div[1]/header/div/div[1]/div[2]/div/form/div[3]/div/span/input"))).click()

它将点击搜索图标,现在在结果页面上,这个xpath //span[@class='a-size-base a-color-success a-text-bold']不存在,因此在您可能面对的TimedoutException控制台上没有打印任何内容。

但是,看看您共享的屏幕截图,我会说使用这个xpath

//div[@id='availability']//span[contains(text(),'In stock.')]

如果要打印文本和标签

代码语言:javascript
运行
复制
print(WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, "//div[@id='availability']//span[contains(text(),'In stock.')]"))).get_attribute("innerHTML"))

如果您只想要文本:

代码语言:javascript
运行
复制
print(WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, "//div[@id='availability']//span[contains(text(),'In stock.')]"))).get_attribute("innerText"))
票数 0
EN

Stack Overflow用户

发布于 2022-04-28 00:04:40

driver.findElement(By.className("status-info"))是Java语法,getText()是Java方法。您可能需要Python语法和方法。

解决方案

要打印股票中的文本.,您需要为导入WebDriverWait,并且可以使用以下任何一个

使用

  • 的CSS_SELECTOR:

打印( 20).until(EC.visibility_of_element_located((By.CSS_SELECTOR,"span.a-size-base.a-color-success.a-text-bold"))).text),驱动程序,WebDriverWait)

使用XPATH的

打印(驱动程序,20).until(EC.visibility_of_element_located((By.XPATH,“//span@class=‘a-size-基a色- a-text-bold'"))).get_attribute("innerHTML")) )

  • Note:您必须添加以下导入:

从selenium.webdriver.support.ui导入WebDriverWait从selenium.webdriver.common.by导入从selenium.webdriver.support导入expected_conditions作为EC

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72036491

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档