我有两个网页,因此有两个单独的课程。在第一课中,我通过单击在同一选项卡中加载新页面的链接在第一页上执行操作。
public int getTextViewEffectedWidth(TextView textView, String content){
Rect bounds = new Rect();
Paint paint = textView.getPaint();
paint.getTextBounds(content, 0, content.length(), bounds);
return bounds.width();
}
然后在第二节课中,我使用extend继承第一个类。但是当我对第二页的元素执行操作时,它不会抛出这样的元素异常。
如果我在点击链接后在第一个类中执行操作,则与第二页相关的所有内容都可以正常工作。但是当我创建第二个类并尝试执行操作时,我没有得到这样的元素错误。
如果我是正确的,那么问题不在于切换窗口。我也尝试过切换控件。但它没有用。
请让我知道问题和解决方案是什么。提前谢谢。
以下是头等舱的代码:
FirstClass {
Driver.click();
}
SecondClass extends FirstClass {
//code goes here
}
第二类代码是:
import java.util.List;
import java.util.Set;
import org.testng.Assert;
import org.testng.annotations.Test;
import pom.AllJobsPage;
import pom.DashboardPage;
import pom.ResponseManagerPage;
import pom.SessionPage;
public class TestSession extends ClickLogin{
@Test
public void testSession() throws InterruptedException
{
SessionPage s=new SessionPage(driver);
String winHandleBefore = driver.getWindowHandle();
s.SessionSubmit();
for(String winHandle : driver.getWindowHandles())
{
driver.switchTo().window(winHandle);
DashboardPage db=new DashboardPage(driver);
String winHandleDashB = driver.getWindowHandle();
db.ClickViewMore();
Set<String> allWindows = driver.getWindowHandles();
for(String curWindow : allWindows){
driver.switchTo().window(curWindow);
}
AllJobsPage Aj=new AllJobsPage(driver);
Aj.ClickResponseLink();
}
答案 0 :(得分:0)
string BaseWindow = driver.CurrentWindowHandle;
System.Collections.ObjectModel.ReadOnlyCollection<string> handles = driver.WindowHandles;
if(handles.Count == 2)
{
foreach (string handle in handles)
{
if (handle != BaseWindow)
{
//Do Something.
}
}
}
driver.SwitchTo().Window(BaseWindow);
这对我有用。代码在C#中。希望这可能会有所帮助。