硒-Can';t从元素(python)获取文本

硒-Can';t从元素(python)获取文本,python,selenium,Python,Selenium,我正在尝试从以下位置获取输入结果: 但是我没有得到结果,我试过: result = browser.find_element_by_id("input") result.text result.get_attribute("textContent") result.get_attribute("innerHtml") result.get_attribute("textContent") 但它不起作用并返回一个空字符串。必需的元素是base64 image,因此您可以从@src获取b

我正在尝试从以下位置获取输入结果:

但是我没有得到结果,我试过:

result = browser.find_element_by_id("input")

result.text

result.get_attribute("textContent")

result.get_attribute("innerHtml")

result.get_attribute("textContent")

但它不起作用并返回一个空字符串。

必需的元素是base64 image,因此您可以从
@src
获取base64值,将其转换为image并使用PIL之类的工具获取值(相当复杂的方法),也可以通过直接API调用获得结果:

import requests

url = 'https://web2.0calc.com/calc'
data =  data={'in[]': '45*23'}  # pass your expression as value

response = requests.post(url, data=data).json()
print(response['results'][0]['out'])
#  1035
更新

如果需要
#输入的值

print(browser.find_element_by_id('input').get_attribute('value'))

必需的元素是base64 image,因此您可以从
@src
获取base64值,将其转换为image并使用PIL(相当复杂的方法)等工具获取值,也可以通过直接API调用获取结果:

import requests

url = 'https://web2.0calc.com/calc'
data =  data={'in[]': '45*23'}  # pass your expression as value

response = requests.post(url, data=data).json()
print(response['results'][0]['out'])
#  1035
更新

如果需要
#输入的值

print(browser.find_element_by_id('input').get_attribute('value'))

我更喜欢给定的POST示例(+用于该示例),但您可以获取表达式并使用该表达式计算它。
asteval
可能有限制。它比
eval
更安全

from selenium import webdriver
from asteval import Interpreter

d = webdriver.Chrome()
url = 'https://web2.0calc.com/'
d.get(url)
d.maximize_window()
d.find_element_by_css_selector('[name=cookies]').click()
d.find_element_by_id('input').send_keys(5)
d.find_element_by_id('BtnPlus').click()
d.find_element_by_id('input').send_keys(50)
d.find_element_by_id('BtnCalc').click()
expression = ''

while len(expression) == 0:
    expression = d.find_element_by_id('result').get_attribute('title')

aeval = Interpreter()
print(aeval(expression))
d.quit()

我更喜欢给定的POST示例(+用于该示例),但您可以获取表达式并使用该表达式计算它。
asteval
可能有限制。它比
eval
更安全

from selenium import webdriver
from asteval import Interpreter

d = webdriver.Chrome()
url = 'https://web2.0calc.com/'
d.get(url)
d.maximize_window()
d.find_element_by_css_selector('[name=cookies]').click()
d.find_element_by_id('input').send_keys(5)
d.find_element_by_id('BtnPlus').click()
d.find_element_by_id('input').send_keys(50)
d.find_element_by_id('BtnCalc').click()
expression = ''

while len(expression) == 0:
    expression = d.find_element_by_id('result').get_attribute('title')

aeval = Interpreter()
print(aeval(expression))
d.quit()

页面上带有
id=“result”
的项目是图像。图像没有任何这些属性。如果你可以模仿,似乎也会发出POST请求。你说得对,我的意思是放置id=“input”,这不是一个image@kobyt,用
id=“result”
检查该页面上的项目是否为图像。图像没有任何这些属性。如果你可以模仿,似乎也会发出POST请求。你说得对,我的意思是放置id=“input”,这不是一个image@kobyt,检查打印(浏览器。按\u id('input')查找\u元素。获取\u属性('value'))有效!谢谢打印(浏览器。通过\u id('input')查找\u元素。获取\u属性('value'))有效!谢谢