【发布时间】:2021-12-20 02:51:57
【问题描述】:
我正在尝试一些网络测试自动化。
为了练习我带了Sause demo site
它在页面上定义为登录按钮<input type="submit" class="submit-button btn_action" data-test="login-button" id="login-button" name="login-button" value="Login">
它在屏幕上的文本是“LOGIN”(大写)。
我想从登录按钮获取文本。
首先我尝试使用login_button.text,它返回空字符串。好的,很清楚为什么和预期。
然后我尝试获取 login_button 的属性值,它返回“登录”字符串。
我检查了登录按钮是否应用了以下 CSS 样式并将文本变为大写。
.submit-button {
text-transform: uppercase;
}
但是有没有可能从这个按钮获取文本的确切显示方式(“LOGIN”而不是“Login”)?
我使用的代码示例:
driver = webdriver.Chrome(CHROME_DRIVER_PATH)
driver.get("https://www.saucedemo.com/")
login_button = driver.find_element_by_id("login-button")
print(login_button.text) # returns empty string
print(login_button.get_property("value")) # returns "Login"
driver.quit()
【问题讨论】:
-
我猜想一些 HTML 内置函数,如
text-transform或js正在用于将Login显示为LOGIN,但我们无法获得您想要的文本。你需要使用python函数来隐藏它。
标签: selenium selenium-webdriver html-input webautomation submit-button