Skip to content

Commit 97434ae

Browse files
committed
Fix for MHA-602: Enhance WebDriver browserClass resolution
1 parent 3015cbd commit 97434ae

File tree

1 file changed

+25
-3
lines changed

1 file changed

+25
-3
lines changed

src/viewfactory.cc

Lines changed: 25 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,33 @@ ViewFactory* ViewFactory::GetInstance()
1515
return instance;
1616
}
1717

18-
QWidget* ViewFactory::create(const std::string & id)
18+
QWidget* ViewFactory::create(const std::string &id)
1919
{
2020
FactoryMap::iterator it = factory.find(id);
2121
if (it != factory.end())
22+
{
23+
qDebug()<<"[WD]:"<<"ViewFactory create:"<<QString(it->first.c_str());
2224
return it->second->create();
23-
qDebug()<<"[WD]:"<<"Browser class"<<QString(id.c_str())<<" is not registered. Create default one";
24-
return new QWebViewExt;
25+
}
26+
else
27+
{
28+
// get first found QWebView; only for QWebView, for NativeWD need additional implementation
29+
FactoryMap::iterator it = factory.begin();
30+
for (it; it != factory.end(); ++it)
31+
{
32+
QWidget* retWidget;
33+
34+
retWidget = it->second->create();
35+
QWebView* retView = qobject_cast<QWebView*> (retWidget);
36+
if (retView)
37+
{
38+
qDebug()<<"[WD]:"<<"ViewFactory create first found registered QWebView subclass:"<<QString(it->first.c_str());
39+
return retView;
40+
}
41+
else
42+
delete retWidget;
43+
}
44+
qDebug()<<"[WD]:"<<"ViewFactory create default QWebViewExt";
45+
return new QWebViewExt;
46+
}
2547
}

0 commit comments

Comments
 (0)