硒-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'))有效!谢谢