我有一个自动化套件,目前正在针对Wordpress(一个需要练习的测试网站)进行测试。我试图验证用户编辑现有页面时他们被带到正确的屏幕。以前,以下代码段工作正常,但现在下面提到的ID不再存在(它是一个图像)。
public static bool IsInEditMode()
{
return Driver.Instance.FindElement(By.Id("icon-edit-pages")) != null;
}
Assert.AreEqual(NewPostPage.IsInEditMode(), "You are not in edit mode");
我定位的HTML是......
<h2>
Edit Page
<a href="http://localhost/wordpress/wp-admin/post-new.php?post_type=page" class="add-new-h2">Add New</a>
</h2>
我想提取h2标签'编辑页面'的值。目前我也得到了锚点'添加新'的值,我需要忽略它。
使用带有“h2:first-child”的CssSelector返回两个值。
我想我需要使用正则表达式,如果有人有任何建议可以提供帮助,那就太好了。
我尝试在JSFiddle中做类似的事情,但需要C#等价物
var myString = document.getElementsByTagName('h2')[0].innerHTML;
var newString = myString.replace(/<([^>]+?)([^>]*?)>(.*?)<\/\1>/ig, "");
console.log(newString);
答案 0 :(得分:0)
您还可以获取父元素的文本并从中删除子元素的文本:
var parent = Driver.FindElement(By.TagName("h2"));
var child = parent.FindElement(By.TagName("a"));
var text = parent.Text.Replace(child.Text, "").Trim();
答案 1 :(得分:0)
您可以使用StringAssert来验证要检查的字符串是否包含预期的字符串。我认为更好,因为你不需要使用正则表达式
示例:
StringAssert.Contains(message, expectedmessage);