Selenium Webdriver统计可见窗体错误和返回状态的发生率

2024-10-02 04:31:28 发布

您现在位置:Python中文网/ 问答频道 /正文

这可能已经被其他内容覆盖了,但是我找不到与我的场景相匹配的内容…我对selenium webdriver和Python非常陌生,所以请原谅我代码中的任何“最佳实践”问题。你知道吗

我试图找到一个解决方案,计算web窗体上字段错误的实例,如果它大于或等于1,那么结果应该是失败。如果为零,则表示通过。此外,我想打印到控制台哪些领域的错误正在提出。你知道吗

为了便于维护,我使用存储在字典中的xpath,然后从标签返回字符串(这也是我的xpath标识符)。你知道吗

此外,错误消息只是动态显示的,因此需要处理异常“NoSuchElementException”

我知道我想实现什么,但似乎不能得到正确的语法,所以每次结果是'通过'-我相信这是因为我的一个或多个XPath返回异常。你知道吗

下面是我要进行计数并返回结果的代码块片段:

    for key in formErrors:
    try:
        error = driver.find_element_by_xpath(formErrors[key]).text
        print(error)
        if error:
            error = "Fail"
    except exceptions.NoSuchElementException:
            error = "Pass"

以下是我字典的一个片段:

formErrors = {"error1": "//label[contains(text(),'Only letters or punctuation should be entered')]",
          "error2": "//label[contains(text(),'Only letters, numbers, spaces or dashes should be entered')]",
          "error3": "//label[contains(text(),'Only numbers and at least four digits should be entered')]",
          "error4": "//label[contains(text(),'Only letters should be entered')]"}

此外,“for key In formErrors”位于for循环中,该循环将csv的输入发送到字段中…并在每次csv有值时提交表单…我认为回答我的问题不需要这样做,但我认为最好是提供洞察力。你知道吗


Tags: keytext内容onlyfor错误errorbe
1条回答
网友
1楼 · 发布于 2024-10-02 04:31:28

好的-我花了更多的时间找到了一个对我有效的解决方案:

对于错误字典中的每个键,提交表单并循环检查是否存在错误

如果有一个或多个错误,则返回“Fail”;如果没有错误,则返回“Pass”

for key in formErrors:
    try:
        error = driver.find_element_by_xpath(formErrors[key]).is_displayed()
        if error:
            errorCount += 1

    except exceptions.NoSuchElementException:
        excepPresent = True

if errorCount >= 1:
    formResult = "Fail"
else:
    formResult = "Pass"

errorCount是在整个表单循环之外定义的,在每个表单循环完成后,我还会重置errorCount。你知道吗

exception子句就在那里,这样我的脚本就不会在错误字典中找不到错误时进行故障转移。你知道吗

相关问题 更多 >

    热门问题