如何在webdriverio中点击cssSelector
How to click cssSelector in webdriverio
我在 Lightening SalesForce 应用程序中有一个页面需要单击。
我试过复制它的 xpath,但是 webdriver IO 找不到这个元素,也无法与之交互。
这是HTML:
<span class=" listViewPickerOption" data-aura-rendered-by="1124:0">All Accounts</span>
我已经在我的 webdriverIO 代码中尝试过:
.click('//*[@id="800:0_listviewpicker_0"]/span[3]')
(//*[@id="800:0_listviewpicker_0"]/span[3]
是元素的 xpath。
当我运行测试时,它没有点击这个元素。
点击该元素的正确方法是什么?
我会做的是这样的:
//*[@class="listViewPickerOption"]
如果我对问题的理解正确,那应该可以。当您在 DOM.
上搜索时,您可以在 chrome 的开发者工具中测试 xpath
有时,HTML 元素嵌套在 <frame>
或 <iframe>
元素下。
Webdriver 不会自动读取这些框架内部的内容,因此您必须切换到框架,以便 webdriver 能够读取内部 HTML.
driver.switchTo().frame("whatever the frame name is");
解决方案
这就是最终 100% 有效的方法:
.click('//span[text()="All Accounts"]')
它每次都点击这个元素,没有失败。
我在 Lightening SalesForce 应用程序中有一个页面需要单击。 我试过复制它的 xpath,但是 webdriver IO 找不到这个元素,也无法与之交互。
这是HTML:
<span class=" listViewPickerOption" data-aura-rendered-by="1124:0">All Accounts</span>
我已经在我的 webdriverIO 代码中尝试过:
.click('//*[@id="800:0_listviewpicker_0"]/span[3]')
(//*[@id="800:0_listviewpicker_0"]/span[3]
是元素的 xpath。
当我运行测试时,它没有点击这个元素。
点击该元素的正确方法是什么?
我会做的是这样的: //*[@class="listViewPickerOption"]
如果我对问题的理解正确,那应该可以。当您在 DOM.
上搜索时,您可以在 chrome 的开发者工具中测试 xpath有时,HTML 元素嵌套在 <frame>
或 <iframe>
元素下。
Webdriver 不会自动读取这些框架内部的内容,因此您必须切换到框架,以便 webdriver 能够读取内部 HTML.
driver.switchTo().frame("whatever the frame name is");
解决方案
这就是最终 100% 有效的方法:
.click('//span[text()="All Accounts"]')
它每次都点击这个元素,没有失败。