我决定为我正在做的一个项目摆弄一下seleniumbase
,并且一直在努力弄清楚语法。在GitHub网站上,我发现了很多展示self.click()
和self.type()
的代码、文档和示例。我试图让我的代码在这个网站的过程框中输入术语"MRI",但它不起作用,而且我试图访问的大多数代码都没有ID值。我希望有人能通过我的语法,阐明为什么会出现这种情况。
这是我的代码:
from seleniumbase import BaseCase
class HealthSiteTest(BaseCase):
def test_health_site(self):
self.open("https://www.finestrahealth.com/")
self.assert_element_present("Finestra")
self.type("input#Procedure", "mri")
if __name__ == "__main__":
from pytest import main
main([__file__])
这是我想访问的内容的html:
任何帮助都非常感激,谢谢!
1条答案
按热度按时间cqoc49vn1#
在脚本中,您有
self.assert_element_present("Finestra")
,但其输入应该是CSS选择器或XPath,而不是文本。对于文本Assert,您可以执行self.assert_text("TEXT")
、self.assert_text("TEXT", "SELECTOR")
(用于子字符串搜索)或self.assert_exact_text("TEXT", "SELECTOR")
。下面的脚本将验证文本并填充该页面上的字段:
你可以使用SeleniumBase Recorder通过手动点击和输入文本来生成上面的脚本。在SeleniumBase GitHub页面上有很多关于记录器的文档(和视频)。
如果你使用
pytest --demo
运行上面的脚本,你会看到浏览器的动作,这样就更容易看到脚本在做什么。否则,它可能运行得太快,你的眼睛看不到它在做什么(但它仍然可以成功地全速运行,甚至在无头模式下运行得更快)。