Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >是否有一种方法来断言部分文本匹配?

是否有一种方法来断言部分文本匹配?
EN

Stack Overflow用户
提问于 2019-10-24 12:51:33
回答 2查看 3.7K关注 0票数 1

我在C#中使用Selenium C#,并试图编写一个断言,如果第一个字符串中的某些文本与第二个字符串中的部分文本相匹配,该断言将比较两个字符串并断言True。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
string ActualValue = driver.FindElement(By.CssSelector("div.Toastify__toast.Toastify__toast--error")).Text;

Assert.IsTrue(ActualValue.Contains("There was an error validating your API key. Please contact Support and provide us with your public facing IP address:"));

我的'ActualValue‘字符串正在接收这个文本字符串,我需要将它与上面的字符串(减去IP地址)匹配:“验证您的API键时出错。请联系支持,并向我们提供您面向IP地址的公共信息:22.12.23.14”

此测试无法评估为True。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
string ActualValue = driver.FindElement(By.CssSelector("div.Toastify__toast.Toastify__toast--error")).Text;

Assert.IsTrue(ActualValue.Contains("There was an error validating your API key. Please contact Support and provide us with your public facing IP address:"));

预期结果--由于第一个字符串包含在第二个字符串中,我希望assert.is真==真结果-I得到断言失败的消息: expect : true,但为False:False

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-10-24 17:54:56

这是一个很好的学习机会,可以编写更好的断言来帮助调试这个问题和其他问题。不要编写一个计算结果为true/false的断言,而是编写一个会给您提供更多信息的断言。例如,当断言失败时,您将得到消息。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Expected: true
But was:  false

不是很有帮助对吧?相反,请使用StringAssert.Contains(),如

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
string expected = "There was an error validating your API key. Please contact Support and provide us with your public facing IP address:";
string actual = driver.FindElement(By.CssSelector("div#item")).Text;
StringAssert.Contains(expected, actual, "Verify error message.");

现在,当断言失败时,您将得到下面的信息。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
"Verify error message."
    Expected: String containing "There was an error validating your API key. Please contact Support and provide us with your public facing IP address:"
    But was: "There was an error validating your API key. Please contact Support and provide us with your public facing IP address:22.12.23.14"

现在,如果您的字符串是不同的,您可以比较两者,看看问题所在。如果您已经比较了实际字符串和预期字符串,但没有看到任何区别,那么可能需要将它们作为ASCII值来查找不可打印的字符。

还有..。总是,总是,总是写一个断言注释。它是断言中继预期和实际之后的第三个字符串。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
StringAssert.Contains(expected, actual, "Verify error message.");

它用作故障的标签,并将帮助您确定哪个断言实际失败。

票数 2
EN

Stack Overflow用户

发布于 2019-10-24 14:04:08

此代码运行良好:

selenium "default.html“的目标html

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<!DOCTYPE html>

<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="utf-8" />
    <title></title>
</head>
<body>
    <div id="item">There was an error validating your API key. Please contact Support and provide us with your public facing IP address: 102.2.10.11</div>
</body>
</html>

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var driver = new ChromeDriver();
driver.Url = "file:///C:/Users/Espen/source/repos/Test/default.html"; // path to website under test
var str = driver.FindElement(By.CssSelector("div#item")).Text;
Assert.IsTrue(str.Contains("There was an error validating your API key. Please contact Support and provide us with your public facing IP address:"));

我在想,要么你的文本在测试的任何一边有一个错误,要么你的选择器击中一个或多个目标。在针对特定元素时,我会考虑使用ids来选择类选择器而不是类选择器。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58548978

复制
相关文章
文本模糊匹配
文本模糊匹配主要是指对两段文本含义相近程度的计算,当我们需要处理的数据集比较多样或者是未标准化的脏数据时,通过模糊匹配主要实现的是去除重复值的操作。 高级的模糊匹配涉及到的是自然语言处理的一部分内容,这里所说的模糊匹配则是一种相对比较简单的匹配方式,例如两个相近的表达方式(‘underground’ ‘subway’),一些可能出现的拼写错误和较小的语法错误或句法偏移(‘apple’ ‘appel’)以及一些并列词语位置的颠倒之类的等等一些不会涉及到语义分析的一些内容。
爱编程的小明
2022/09/06
2.3K0
文本模糊匹配
Elasticsearch探索:部分匹配
官网地址:https://www.elastic.co/guide/en/elasticsearch/reference/current/term-level-queries.html
HLee
2020/12/24
2.3K0
Elasticsearch探索:部分匹配
恼人的部分匹配查找
这天有空,小范照常开始了Excel的研习。俗话说,一天不练,手生脚慢;两天不练,功夫减半;三天不练,成了门外汉。对于自己热爱的Excel,小范从不马虎。
fanjy
2021/10/15
1.9K0
用栈判断是否匹配
写代码的时候用到的括号都是成双成对的出现,并且大小也相同。在集成编辑环境中,IDE就会为我们自己动检查括号是否匹配。那么为了避免在报错,如何判断是否有无括号不匹配?
算法与编程之美
2023/08/22
1790
用栈判断是否匹配
用户输入括号是否匹配
public class brackets { /*算法*/ public static boolean isMatch(String str) { int i = 0; char e, x; SqStackClass<Character> st = new SqStackClass<Character>(); //建立一个顺序栈 while (i < str.length()) {
楠羽
2022/11/18
1K0
如何对图片是否加载完成进行断言
很多时候会遇到需要断言网页中图片是否加载完成来判断用例执行是否成功。而WebDriver只会检查DOM中是否有image 标记,而不能检查这个图片是否不可见或者坏掉。此时我们的思路是利用javascript属性naturalWidth是否大于0去判断图片是否加载完成。部分代码如下:
Meccer
2021/03/17
1.4K0
文本匹配——【EMNLP 2021】SimCSE
SimCSE(Simple Contrastive Learning of Sentence Embeddings)是一种简单在没有监督训练数据的情况下训练句子向量的对比学习方法。
小爷毛毛_卓寿杰
2022/09/30
9890
文本匹配——【EMNLP 2021】SimCSE
文本匹配——【NAACL 2022】GPL
《文本匹配——【EMNLP 2021】TSDAE》中的自适应预训练的一大缺点是计算开销高,因为必须首先在语料库上运行预训练,然后在标记的训练数据集上进行监督学习。标记的训练数据集可能非常大。
小爷毛毛_卓寿杰
2022/06/30
7420
文本匹配——【NAACL 2022】GPL
搜索:文本的匹配算法
搜索即找到跟搜索词句很相似的文本,例如在百度中搜索"人的名",结果如下 那么怎么评价两个文本之间的相似度呢? 余弦相似度  (cosine similiarity) 本文介绍基于VSM (Vector
alexqdjay
2018/05/11
6.4K0
文本匹配——【ICLR 2021】CT
1. 介绍 论文《SEMANTIC RE-TUNING WITH CONTRASTIVE TENSION》地址:https://openreview.net/pdf?id=Ov_sMNau-PF 之前
小爷毛毛_卓寿杰
2022/09/30
1.5K0
文本匹配——【ICLR 2021】CT
文本匹配——【NAACL 2021】AugSBERT
目前,最先进的 NLP 架构模型通常重用在 Wikipedia 和 Toronto Books Corpus 等大型文本语料库上预训练的 BERT 模型作为基线 。通过对深度预训练的 BERT 进行微调,发明了许多替代架构,例如 DeBERT、RetriBERT、RoBERTa ……它们对各种语言理解任务的基准进行了实质性改进。在 NLP 中的常见任务中,成对句子评分在信息检索、问答、重复问题检测或聚类等方面有广泛的应用。通常,提出了两种典型的方法:Bi-encoders 和 Cross-encoders。
小爷毛毛_卓寿杰
2022/06/30
6460
文本匹配——【NAACL 2021】AugSBERT
PHP使用正则表达式匹配中文,有部分匹配不出来的解决办法
今天在开发的时候有个需要,就是匹配出一条计价公式里的材料文本,示例:[羊脂玉价格]*[羊脂玉重量]+[白金价格]*[白金重量]+[皓石价格]*[皓石重量]+[钻石价格]*1.5*[钻石重量]+[硬金价格]*1.67*[硬金重量],要匹配出[***_价格],就是中括号内,以_价格结尾的字符串(代表材料的名称),我用的语言是PHP,写了一条正则表达式出来,代码如下:
风柏杨4711
2021/03/15
8680
(C语言)检测括号是否匹配
程序设计基础课大作业1 #include<stdio.h> #include<stdlib.h> #include<string.h> #include<malloc.h> #define maxsize 1024 typedef char datatype; typedef struct { datatype elements[maxsize]; int top; }stack; void setnull(stack *&); void push(stack*,datatype); datat
zstar
2022/06/14
1.5K0
KMP算法《部分匹配表》的产生
Java中的应用 java.util.Vector类中 /** * Returns the index of the first occurrence of the specified element in * this vector, searching forwards from {@code index}, or returns -1 if * the element is not found. * More formally, returns the low
JavaEdge
2018/05/16
1.9K0
文本相似度,文本匹配模型归纳(附代码)
本文将会整合近几年来比较热门的一些文本匹配模型,并以QA_corpus为测试基准,分别进行测试,代码均采用tensorflow进行实现,每个模型均会有理论讲解与代码实现。
机器学习AI算法工程
2021/01/27
2.2K0
文本相似度,文本匹配模型归纳(附代码)
有很多种方法来解决八数码
我很纳闷ida*然而,如何快速的双搜索。还找到了灵感不在位的基础上A*和Ida*来到慢。特别ida* 搜索31步骤甚至十几秒。我写的代码是有问题?忘记丹尼尔路过指点啊。!!!
全栈程序员站长
2022/07/18
7130
有很多种方法来解决八数码
人岗智能匹配,基于记忆的深度文本匹配技术
https://pan.baidu.com/s/1mbTWIPAzUIXkIU-2cIiWEw
机器学习AI算法工程
2019/10/28
2.2K0
人岗智能匹配,基于记忆的深度文本匹配技术
小布助手对话短文本语义匹配
向AI转型的程序员都关注了这个号👇👇👇 机器学习AI算法工程   公众号:datayx 小布助手是OPPO公司为欧加集团三品牌手机和IoT设备自研的语音助手,为用户提供了有趣、贴心、便捷的对话式服务。意图识别是对话系统中的一个核心任务,而对话短文本语义匹配是意图识别的主流算法方案之一。 训练数据 训练数据包含输入query-pair,以及对应的真值。初赛训练样本10万,复赛训练样本30万,这份数据主要用于参赛队伍训练模型,为确保数据的高质量,每一个样本的真值都有进行人工标注校验。每行为一个训练样本,由que
机器学习AI算法工程
2022/09/06
1.4K0
小布助手对话短文本语义匹配
判断有向图是否有圈
1. 拓扑排序 拓扑排序是对有向无圈图的顶点的一种排序:如果存在一条vi到vj的路径,则vj排在vi后面(因为只要满足这个特性就是拓扑序列,所以它不一定是唯一的)。比如在众多的大学课程中,有些课有先修课,我们可以将其抽象为拓扑排序,有向边(v, w)表明课程v必须安排在w之前,否则课程w就无法进行。我们可以想象所有的课程以及课与课之间的关系可以用一个图来表示,而拓扑排序就可以知道课程安排的顺序。然而,如果图存在圈,就没有拓扑序列。比如如果要上课程A必须上课程B,要上课程B必须上课程C,而要上课程C必须上课程
llhthinker
2018/01/24
2.9K0
搜狐文本匹配算法大赛方案总结
在自然语言理解中,自然语言推理(Nature Language Inference,NLI)被认为是一个非常基础但重要的研究任务。它要求机器去理解自然语言的深层次语义信息,进而做出合理的推理。更具体的推理任务,则是判断句子关系,即对于给定的两个句子,判断它们含义是否一致。
NewBeeNLP
2022/11/17
1.2K0
搜狐文本匹配算法大赛方案总结

相似问题

断言部分文本匹配的文本

110

是否有一种更简洁的方法来断言数组的元素每个都与谓词匹配?

13

是否有一种与部分密钥匹配的方法?

22

在JUnit中是否有一种方法来跟踪多个断言测试用例的每个断言?

11

是否有一种方法来断言一个页面的方向?(例如断言RTL为真)

121
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文