Selenium innerHTML在Firefox中运行良好,而当我在Chrome中尝试同样的方法时,它就不起作用了
我正在尝试使用JavaScriptExecutor获取工具提示文本。该代码在Firefox中运行良好,而在Chrome中则无法运行相同的代码 情况是: 当我在上传文件字段中选择一个无效的文件类型时,我将以工具提示消息的形式收到验证消息。要获取工具提示消息,我使用以下代码Selenium innerHTML在Firefox中运行良好,而当我在Chrome中尝试同样的方法时,它就不起作用了,selenium,selenium-webdriver,selenium-chromedriver,selenium-firefoxdriver,Selenium,Selenium Webdriver,Selenium Chromedriver,Selenium Firefoxdriver,我正在尝试使用JavaScriptExecutor获取工具提示文本。该代码在Firefox中运行良好,而在Chrome中则无法运行相同的代码 情况是: 当我在上传文件字段中选择一个无效的文件类型时,我将以工具提示消息的形式收到验证消息。要获取工具提示消息,我使用以下代码 String invalidFileTypeMessag=(String)((JavascriptExecutor)驱动程序).executeScript(“返回参数[0].innerHTML;”,tooltipWebEleme
String invalidFileTypeMessag=(String)((JavascriptExecutor)驱动程序).executeScript(“返回参数[0].innerHTML;”,tooltipWebElement)代码>
完全相同的代码在Firefox中工作,而不是在Chrome中 实现以下代码有助于解决我的问题
try
{
String mouseOverScript = "if(document.createEvent){var evObj = document.createEvent('MouseEvents');evObj.initEvent('mouseover',true, false); arguments[0].dispatchEvent(evObj);} else if(document.createEventObject) { arguments[0].fireEvent('onmouseover');}";
((JavascriptExecutor) driver).executeScript(mouseOverScript,uploadFileInputFieldWebElement);
Thread.sleep(1000);
invalidLicenseFileTypeMessag = (String)((JavascriptExecutor)driver).executeScript("return arguments[0].innerHTML;",tooltipWebElement);
} catch (Exception e) {
exception message;
}
为什么您使用JavascriptExecutor
而不是GetAttribute
方法?为什么不使用textContent
而不是innerHTML
@Madhan使用textContent会给我以下错误“没有这样的元素:无法定位元素”。我的代码在Firefox上运行得非常好,但它在Chrome上造成了这个问题。@GaurangShah,因为我正试图从隐藏的div标记中检索文本。只有当我们将鼠标移到特定字段上时,标签才会可见。@SujaiKrishna这就是问题所在。完全按照手动方式执行。首先执行mousever事件,然后尝试获取元素属性。我相信这将适用于大多数浏览器。