【问题标题】:JMeter Groovy - WebDriver Sampler Dynamic Name with Response Code 500JMeter Groovy - 响应代码为 500 的 WebDriver 采样器动态名称
【发布时间】:2021-02-08 01:40:05
【问题描述】:

我已经厌倦了使用 JMeter Groovy WebDriver Sampler 下面的代码和变量。它不起作用并返回响应代码 500“ElementNotInteractableException:元素不可交互”。但我硬编码变量名和工作查找。 XML变量的问题是动态的,每次从Chrome加载时数字都会改变。可以请教吗?

变量不工作: WDS.browser.findElement(org.openqa.selenium.By.xpath("//ul[contains(@id,'dropdown-menu-')]/li")).click();

变量工作正常: WDS.browser.findElement(org.openqa.selenium.By.xpath("//ul[@id='dropdown-menu-2724']/li")).click();

我也尝试了以下代码,但没有成功。

WDS.browser.findElement(org.openqa.selenium.By.xpath("//ul[contains(@id,'dropdown-menu-')]/li")).sendKeys("dropdown-menu- "); WDS.browser.findElement(org.openqa.selenium.By.xpath("//ul[starts-with(@id,'dropdown-menu-')]/li")).sendKeys("dropdown-menu-" );

以下代码也不起作用:

WDS.browser.findElement(org.openqa.selenium.By.id("dropdown-menu-").sendKeys("dropdown-menu-")); WDS.browser.findElement(org.openqa.selenium.By.id("dropdown-menu-").sendKeys(Keys.ENTER));

enter image description here

enter image description here

enter image description here

【问题讨论】:

    标签: groovy jmeter jmeter-plugins


    【解决方案1】:

    我的期望是,当您使用 contains() function 时,它会尝试单击找到的 first 元素,并且您尝试单击的元素很可能不是与您的 XPath 查询匹配的第一个元素.

    在没有看到完整响应的情况下,我们无法建议找到元素的更好方法,但是我建议坚持使用此 Confirm 文本,然后计算 preceding-sibling,请参阅 XPath Axes 文章。

    您的选择器必须是:

    1. 独特
    2. 完全匹配您要与之交互的元素
    3. 元素需要可见
    4. 元素必须是可点击的

    可以使用 browser developer tools 来测试选择器

    你也可以看Mixing Selenium Into Your Load Scenario的文章

    【讨论】:

    • 您好 DT,感谢您的回复。当我单击用户名时,它将有一个下拉注销按钮。然后单击注销按钮,它将显示确认页面以注销系统。 (请参阅随附的第 3 号屏幕截图)。问题是 JMeter Groovy 脚本没有使用这种语法单击“注销”按钮。看起来脚本无法识别此代码 "("//ul[@id='dropdown-menu-2724']/li")"。您能否提供更多建议?非常感谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多