Java webdriver目标="_“空白”;

Java webdriver目标="_“空白”;,java,firefox,selenium,webdriver,target,Java,Firefox,Selenium,Webdriver,Target,页面上有带有超链接的图像,该超链接有target=“\u blank”,每次我按下该图像时,该图像将加载新的firefox,并且该超链接将重定向到新的firefox web 我失去了对网页的控制。 可以删除或更改超链接上的target=“\u blank”,因为我想在同一webdriver中加载网页 WebDriver driver = new FirefoxDriver(); driver.get("http://www.page.eu/"); WebElement subm

页面上有带有超链接的图像,该超链接有target=“\u blank”,每次我按下该图像时,该图像将加载新的firefox,并且该超链接将重定向到新的firefox web 我失去了对网页的控制。 可以删除或更改超链接上的target=“\u blank”,因为我想在同一webdriver中加载网页

WebDriver driver = new FirefoxDriver();

    driver.get("http://www.page.eu/");
    WebElement submit;
    submit = driver.findElement(By.xpath("//img[@alt='page']"));
    submit.click();
该超链接具有target=“\u blank” 我需要通过使用webdriver+javascript或者什么来改变这个目标? 可能吗

已编辑

谢谢你的建议,但这仍然是个问题 我试着像Grooveek所说的那样做,但没有改变

WebElement labels2 = driver.findElement(By.xpath("//a[@href='http://tahtpage.net']"));
    WebElement aa = (WebElement) ((JavascriptExecutor)  driver).executeScript("labels2.setAttribute('target','_self')",labels2 );
    aa.click();
我有个错误 org.openqa.selenium.WebDriverException:null(警告:服务器未提供任何堆栈跟踪信息)

我不擅长javascrit,所以我认为执行器存在问题,为什么不使用:

target="_self"

在窗口中评估javascript将帮助您抑制target=空白链接 下面是来自

List labels=driver.findElements(按.tagName(“标签”);
列表输入=(列表)((JavascriptExecutor)驱动程序).executeScript(
变量标签=参数[0],输入=[];for(变量i=0;i

调整它以修改DOM以抛出target=“\u blank links”

而不是单击图像,您可以直接转到链接中的URL:

WebElement link = (driver.findElement(By.xpath("//img[@alt='page']/parent::*"));
String href = link.getAttribute("href");
driver.get(href);

为什么不使用SwitchTo().Window?

尝试以下操作:

WebElement labels2 = driver.findElement(By.xpath("//a[@href='http://tahtpage.net']"));
WebElement aa = (WebElement) ((JavascriptExecutor) driver).executeScript("arguments[0].setAttribute('target','_self')",labels2 );
aa.click();

您将得到一个空异常,因为您在javascript中使用的是
labels2
,在该上下文中不存在。通过将其更改为
参数[0]
Selenium将采用labels2参数并在javascript中适当引用它。

我认为您应该按照simeon sinichkin的建议使用SwitchTo().窗口。然而,我不喜欢他的例子。这里是一个简单的例子

 driver.Navigate().GoToUrl(baseURL);
 //Get the Main Window Handle
 var baseWindow = driver.CurrentWindowHandle;
 // navigate to another window (_blank)
 driver.FindElement(By.Id("btn_help")).Click();
 Thread.Sleep(2000);
 //switch back to Main Window
 driver.SwitchTo().Window(baseWindow);

希望这有助于

超链接有target=“\u blank”我需要使用webdriver+javascript或者什么来改变目标?有可能吗?看这可能会帮助你…URL是受保护的,只需点击图片就可以输入。它是如何受保护的?URL是一个URL。你试过上面的代码吗?+1,因为这个问题让我想,一些开箱即用的东西。但看起来,我有限的知识不值得帮助解决这个问题。我的祝愿,希望你成功。Regardsy您正在单击图像-我们在这里,是新窗口=)它现在具有ID 1。我们需要切换到第一个窗口。它的ID为0。现在我们可以写:List handle=newlist(WebDriver.WindowHandles);TestFramework.WebDriver.SwitchTo().Window(句柄[windowNumber]);或者我们可以用image-WebDriver.SwitchTo().window(windowName)关闭第二个窗口;WebDriver.Close();
 driver.Navigate().GoToUrl(baseURL);
 //Get the Main Window Handle
 var baseWindow = driver.CurrentWindowHandle;
 // navigate to another window (_blank)
 driver.FindElement(By.Id("btn_help")).Click();
 Thread.Sleep(2000);
 //switch back to Main Window
 driver.SwitchTo().Window(baseWindow);