C# 动态选择元素(POS)-selenium

C# 动态选择元素(POS)-selenium,c#,selenium,selenium-webdriver,selenium-chromedriver,C#,Selenium,Selenium Webdriver,Selenium Chromedriver,我正在努力寻找动态变化的元素。我们的项目通常是销售点界面,顶部是类别列表,左侧是产品列表,右侧是篮子 HTLM代码片段类别之一:顶部部分(带类别): <div class="nav-button-container" tabindex="-1" style="width: 100%; display: inline-block;"><button class="nav-button nav-button-inactive" style="color: rgb(243, 235,

我正在努力寻找动态变化的元素。我们的项目通常是销售点界面,顶部是类别列表,左侧是产品列表,右侧是篮子

HTLM代码片段类别之一:顶部部分(带类别):

<div class="nav-button-container" tabindex="-1" style="width: 100%; display: inline-block;"><button class="nav-button nav-button-inactive" style="color: rgb(243, 235, 230); background-color: rgb(0, 0, 0);">Kotzonet</button></div>
<button class="nav-button nav-button-inactive" style="color: rgb(243, 235, 230); background-color: rgb(0, 0, 0);">Kotzonet</button>
类正在根据所选内容进行更改,如果选择了特定类别,则结尾有“活动”标签,其余类别有“非活动”标签。在我看来,为了找到它,类别的值(文本输入)可能很重要。打开POS后,它立即指向“收藏”类别(表示其他类别处于非活动状态)

您能给我一些建议吗?

根据您共享的HTML,单击按钮,文本为Kotzonet,您可以使用以下代码行:

driver.FindElement(By.XPath("//button[@class='nav-button nav-button-inactive' and contains(.,'Kotzonet')]")).Click();

尝试
//按钮[.=“Kotzonet”]
@Anderson很遗憾,它不起作用:(为什么要
查找元素
?下一步要如何处理文本为Kotzone的元素?元素是否显示为
已选中
未选中
两种状态?还是始终显示为
未选中
?@DebanjanB首先,我想选择特定类别(例如:“Kotzone”)。如果用户按特定类别,则详细窗口(包含产品)将打开。这是第一步,然后我想键入产品,将其移动到篮子中,然后再断言somehow@DebanjanB当用户打开POS时,类别设置为“收藏夹”"类别。它总是显示为未删除/不活动。我刚刚用HTML@Kermi
附带HTML图像的原因是什么?
?我想我已经为您提供了一个解决方案。请告诉我状态。有人要求我这样做,认为提供进一步帮助会更容易。我已经键入了代码,可以打开它,但是没有发生任何事情,但测试通过(绿色)…在问题中,您为元素提供了文本为Kotzonet的HTML,在更新的快照中,您强调的是文本为TOP的元素。不要混淆您尝试自动化的步骤。您能告诉我“contains”括号内的含义吗?我的意思是…“ ?
driver.FindElement(By.XPath("//button[@class='nav-button nav-button-inactive' and contains(.,'Kotzonet')]")).Click();