当前位置: 首页 > 面试题库 >

如何使用Selenium在ExtJS中单击元素?

邢焱
2023-03-14
问题内容

我的页面上有两个元素(两个“取消”元素)。

<div unselectable="on" class="x-grid-cell-inner x-unselectable" style="text-align: left; " id="ext-gen1179">
Cancel
</div>

<div unselectable="on" class="x-grid-cell-inner x-unselectable" style="text-align: left; " id="ext-gen2951">
Cancel
</div>

如何单击第二个元素?显然,我无法获得ID,因为它是在每次访问时随机生成的。我可以使用什么?


问题答案:

1.使用FindElements方法,该方法使用给定的机制查找当前上下文内的所有IWebElement。(在这种情况下,您始终需要知道要查找的元素的索引。)

IWebDriver driver = new FirefoxDriver();
IList<IWebElement> cancelDivs = driver.FindElements(By.XPath("//div[text()='Cancel']"));
cancelDivs[1].click(); //zero-base index

2.如果这些取消按钮位于不同的部分,则可以通过非ExtJS id属性进行标识。

<div id='header'>
    <div unselectable="on" class="x-grid-cell-inner x-unselectable" style="text-align: left; " id="ext-gen1179">Cancel</div>
</div>
<div id='footer'>
    <div unselectable="on" class="x-grid-cell-inner x-unselectable" style="text-align: left; " id="ext-gen2951">Cancel</div>
</div>






IWebElement secondCancelDiv = driver.FindElement(By.XPath("//div[@id='footer']//div[text()='Cancel']"));
secondCancelDiv.Click();

3.如果这些取消按钮位于不同的部分,则可以通过不同的ExtJS类属性进行标识。(使用有意义的)

<div id='ext-gen1060' class='x-grid3-body'>
    <div unselectable="on" class="x-grid-cell-inner x-unselectable" style="text-align: left; " id="ext-gen1179">Cancel</div>
</div>
<div id='ext-gen2555' class='x-toolbar-right-row'>
    <div unselectable="on" class="x-grid-cell-inner x-unselectable" style="text-align: left; " id="ext-gen2951">Cancel</div>
</div>






IWebElement secondCancelDiv = driver.FindElement(By.XPath("//div[@class='x-toolbar-right-row']//div[text()='Cancel']"));
secondCancelDiv.Click();


 类似资料:
  • 我有以下HTML: 我下面单击“谷歌搜索”按钮的代码在WebDriver中使用Java时运行良好。 我想用JavaScript和WebDriver来点击按钮。我该怎么做?

  • 问题内容: 我有以下HTML: 我下面的单击“ Google搜索”按钮的代码在WebDriver中使用Java时效果很好。 我想将JavaScript与WebDriver一起使用以单击按钮。我该怎么做? 问题答案: 通过JavaScript执行点击具有一些您应该注意的行为。例如,如果绑定到元素事件的代码调用,则可能会发现Selenium代码挂起,具体取决于浏览器驱动程序的实现。也就是说,您可以使用

  • 问题内容: 我有一个带有一些圆形和矩形元素的SVG对象。使用webdriver,我可以单击主要的svg对象,但不能单击其中的任何元素。问题似乎只在于单击(或任何鼠标交互),因为我可以使用getAttribute()返回其中任何下面内容的宽度,ID,x / y,文本等值。 这是HTML的示例: 还有一个WebDriver尝试右键单击矩形元素(并失败)的示例: 但这有效并返回一个值: 当WebDriv

  • 我将取消使用的网页。此applet生成一个选择标记,我想单击其中的一个选项。 在运行时确实找到了该元素:

  • 我对selenium的第一个测试是单击网站上的按钮。我需要点击的第一个按钮是“是的,你可以使用cookies”——网站弹出窗口中的按钮。但似乎selenium并没有找到那个按钮,即使我添加了一条等待线。我也尝试了弹出窗口中的其他按钮,但是我的元素找不到任何一个可以点击的按钮。元素在iframe中,所以我想我必须更改为它,但似乎我做错了什么。 这就产生了错误 如果我尝试在更改为iframe后直接单击

  • 如何使用selenium Python从主机A(在本例中为jsfiddle.net)单击此处的红色按钮?(java脚本限制策略错误,不让我去做)。我也不想直接点击红色按钮。谢了。