Python/Selenium 打印元素值返回 而不是期望值
我正在尝试编写一个返回城市天气的代码。为此,我使用 selenium (我知道有更好的库,但这是我最满意的库)。首先,我使用代码搜索“weather xxx”,然后使用自动显示所有信息的谷歌功能。
然后我例如选择温度,有 th HTML,3 是我想要打印的值:
<span class="wob_t q8U8x" id="wob_tm" style="display:inline">3</span>
但是当我打印时它返回:
<selenium.webdriver.remote.webelement.WebElement (session="fb232f60015b08ee6db42b7fa83bd990", element="50c95ed2-17ce-41eb-835a-e7f9d0360540")>
如何转换或导航输出或 xpath 来获取值? (3)
完整代码:
from selenium.webdriver.common.keys import Keys as k
from selenium import webdriver
from selenium.webdriver.common.by import By
PATH = "C:\Program Files (x86)\chromedriver.exe"
driver = webdriver.Chrome(PATH)
driver.get("https://google.com/")
def process():
global temperature
driver.find_element(By.XPATH,'//*[@id="L2AGLb"]/div').click()
driver.find_element(By.NAME,'q').send_keys(city, ' weather'+k.RETURN)
temperature = driver.find_element(By.ID,'wob_tm')
city = input('City: ')
process()
print(temperature)
driver.quit()
PS,我使用 ID 来定位元素,但它返回与 XPATH 等相同的“奇怪”输出...
感谢您的帮助
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
你的代码几乎是好的。您所缺少的只是从 Web 元素中提取文本值。
这应该会更好:
您需要在此处添加等待,最好是预期条件显式等待,如下所示:
Your code is almost good. All you missing is extracting the text value from the web element.
This should work better:
You will need to add waits here, preferably Expected Conditions explicit waits, as following:
感谢您的所有答案,这是我在@Prophet的帮助下完成的代码:
thanks for all the answers, here is my finished code I completed with the help of @Prophet: