我在BaseElement类中创建了一个覆盖方法(click()
方法),该方法从WebElement接口实现。
我想在适用的所有网页元素上调用此覆盖方法。
WebElement ele = driver.findElement(By.id("button"));
//默认返回webelement类型
如何在上面的网络元素上调用覆盖click()
方法?
我尝试过将ele转换为BaseElement,如下所示:
BaseElement m_ele = (BaseElement) ele;
//没有编译错误但抛出运行时类转换异常
任何想法都可以帮助我在WebElement上调用重写的click()
方法吗?我不想使用WebElement的内置click()
方法。
如果我必须提供任何其他信息,请告诉我?
这是我的代码段:
public class BaseElement implements WebElement {
public BaseElement(WebElement element) {
m_element = element;
}
@Override
public void click() {
try {
m_element.click();
} catch (WebDriverException e) {
try {
logger.debug("Click Failed, Attempting to click by scrolling into view with bottom align option");
scrollIntoView();
m_element.click();
} catch (WebDriverException ef) {
try {
logger.debug("Click Failed, Attempting to click by scrolling into view with top align option");
scrollIntoView(true);
m_element.click();
} catch (WebDriverException e2) {
try {
logger.debug("Click Failed, Attempting to click by scrolling down by 200 pixels");
m_jsDriver.executeScript("window.scrollBy(0,200)");
m_element.click();
} catch (WebDriverException e3) {
logger.debug("Click Failed, Attempting to click by scrolling up by 200 pixels");
m_jsDriver.executeScript("window.scrollBy(0,-200)");
m_element.click();
}
}
}
}
}
}
答案 0 :(得分:0)
您可以尝试使用以下代码而不是使用ridden click方法。
SELECT SPLIT(description,"_") FROM [dbo].[Stg_Event]
# (or)
SELECT Split(description,':') FROM [dbo].[Stg_Event]