所以这是我的代码,它能够获取datagrid列的标题并从用户输入中找到匹配的值。例如,如果输入为“ jdoe”,它将查看数据网格中的“用户名”列,并将
[value.Key] .Text 与 value.Value相匹配
。现在的问题是,每行都有一个具有相同自动化ID的“编辑”按钮。我如何遍历数据网格并能够单击“编辑”按钮,而不管“
jdoe”在哪一行:这是我到目前为止的内容:
public static bool Contains(this ListView listView, ObjectInList objectInList)
{
foreach (ListViewRow row in listView.Rows)
{
if (DataMatches(row, objectInList))
return true;
}
return false;
}
private static bool DataMatches(ListViewRow row, ObjectInList objectInList)
{
foreach (KeyValuePair<string, string> value in objectInList.Values)
{
if (row.Cells[value.Key].Text != value.Value)
return false;
}
return true;
}
}
internal class UserInList : ObjectInList
{
public UserInList(string username)
{
_values["Username"] = username;
}
}
internal class OrderInList : ObjectInList
{
public OrderInList(string orderNumber)
{
_values["Depot Tag #"] = orderNumber;
}
}
internal abstract class ObjectInList
{
protected readonly Dictionary<string, string> _values = new Dictionary<string, string>();
public IReadOnlyDictionary<string, string> Values
{
get { return _values; }
}
这是WPF应用程序的屏幕截图
这是我用来遍历表的内容:
得到你的搜索元素= value2
得到你的表ID,xpath或css = myTable
循环将遍历表,然后找到value2。在这里,您可以选择下一步要做什么。假设您的专栏看起来像这样:
|col 1 |col 2 | col 3 |
|link1 | value1 | link2 |
|link1 | value2 | link2 |
在下面,它将停止在value2上。变成tds [i]。单击链接1,我使用:
tds[i - 1].Click();
如果要单击链接2,请使用:
tds[i + 1].Click();
只需考虑[i]中的列号,然后向左(减)或向右(加)计数。
public void ClickTableLink(String value2)
{
var table = driver.FindElement(By.Id("myTable"));
foreach (var tr in table.FindElements(By.TagName("tr")))
{
var tds = tr.FindElements(By.TagName("td"));
for (var i = 0; i < tds.Count; i++)
{
if (tds[i].Text.Trim().Contains(value2))
{
tds[i - 1].Click();
break;
}
}
}
}
在此处输入图像描述 在此处输入图像描述 类MainActivity:AppCompatActivity(){lateinit var binding:ActivityMainBinding重写fun onCreate(savedInstanceState:Bundle?){super.onCreate(savedInstanceState)binding=ActivityMainBinding.i
试图查找包含data-qa属性的按钮。尝试用以下方案处理它:
编辑:底部的解决方案 这是一个跳棋游戏。单击一个按钮后,它等待单击第二个按钮与之交换。然而,有时你可能不想移动那个按钮,但一旦你点击了它,就没有回头路了,因为我无法禁用它。 在这里的其他帖子中,我看到人们使用 这只是使它在第一次单击后不可见。 这什么都干不了。 这也没什么用。编辑:所有这些方法都用true和false进行了尝试。 私有无效交换(){ 但你也需要 这样它就重新启用了它,或者其他什么,
我有一个包含36个按钮的响应网站。乍一看,我们只能看到12个按钮,我需要验证它们的文本值,我知道如何做到这一点。但问题是我需要点击下一步按钮,直到它不可见。那么在c#中如何用selenium来做呢? 此外,在单击“下一步”时,我们需要将按钮的文本存储在一个列表或数组中,这样我就可以将所有列表添加到一个新列表中并进行比较。 看看下面的代码,我试过了。 现在上面的工作正常,但当“下一步”按钮不可用时,
我以前也问过类似的问题,但在解析网页时仍然会遇到错误。场景是系统导航到https://shop.sprouts.com/shop/flyer并希望提取与每个类别相关的每个特价商品。目前,当一个类别被点击时,我会在右边看到一个空白屏幕。我尝试了以下两种方法,但得到了相同的结果。 这是时间问题吗?我做错了什么?
我有一个剑道网格和一个按钮栏。单击按钮时,我希望它调用一个javascript函数,并将行的数据作为参数。这是我到目前为止所拥有的