Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 返回语句后无法访问的代码,同时从小部件打开社交媒体链接_Java_Selenium_Firefox_Selenium Webdriver - Fatal编程技术网

Java 返回语句后无法访问的代码,同时从小部件打开社交媒体链接

Java 返回语句后无法访问的代码,同时从小部件打开社交媒体链接,java,selenium,firefox,selenium-webdriver,Java,Selenium,Firefox,Selenium Webdriver,我有一个包含社交媒体图标按钮的小部件,下图: 和html代码 <div class="collapse navbar-collapse social-icon" id="socialwidget-nav"> <ul id="HeaderSocialIcons" class="nav-pills"> <li class="facebook-icon"> <a id='ImageUrlNavigate' class='soci

我有一个包含社交媒体图标按钮的小部件,下图:

和html代码

<div class="collapse navbar-collapse social-icon" id="socialwidget-nav">
 <ul id="HeaderSocialIcons" class="nav-pills">
     <li class="facebook-icon">
         <a id='ImageUrlNavigate' class='socialWidgetIcon' href='https://www.facebook.com/324421790958939' target = '_blank' style='margin:0px;'></a>
     </li>
     <li class="twitter-icon">
         <a id='ImageUrlNavigate' class='socialWidgetIcon' href='https://www.twitter.com' target = '_blank' style='margin:0px;'></a>
     </li>
     <li class="linkedin-icon">
         <a id='ImageUrlNavigate' class='socialWidgetIcon' href='https://www.linkedin.com' target = '_blank' style='margin:0px;'></a>
 </li>
 <li class="google-icon">
     <a id='ImageUrlNavigate' class='socialWidgetIcon' href='https://www.google.com1' target = '_blank' style='margin:0px;'></a>
     </li>
     <li class="youtube-icon">
     <a id='ImageUrlNavigate' class='socialWidgetIcon' href='https://www.youtube.com' target = '_blank' style='margin:0px;'></a>
     </li>
     <li class="instagram-icon">
         <a id='ImageUrlNavigate' class='socialWidgetIcon' href='https://www.Instagram.com' target = '_blank' style='margin:0px;'></a>
 </li>
 <li class="pinterest-icon">
     <a id='ImageUrlNavigate' class='socialWidgetIcon' href='https://www.pintrest.com' target = '_blank' style='margin:0px;'></a>
 </li>
 <li class="blog-icon">
     <a id='ImageUrlNavigate' class='socialWidgetIcon' href='/MyBlog.aspx' target = '_blank' style='margin:0px;'></a>
     </li>
 </ul>

我想使用此脚本打开所有社交媒体链接

package TestScripts;

import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.TimeUnit;

import org.openqa.selenium.By;
import org.openqa.selenium.Keys;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.interactions.Actions;

public class TestSemiCustom {

    public static void main(String[] args) {

System.setProperty("webdriver.gecko.driver", "C:/geckodriver/geckodriver-v0.21.0-win64/geckodriver.exe");
        //System.setProperty("webdriver.chrome.driver", "C:\\Users\\Hassan\\Documents\\eclipseworkspace\\WebDriverProject\\lib\\chromedriver.exe");

        WebDriver driver = new FirefoxDriver();
        //driver.manage().timeouts().implicitlyWait(40, TimeUnit.SECONDS);
        driver.get("http://www.example.com/");
        driver.manage().timeouts().implicitlyWait(40, TimeUnit.SECONDS);

        String oldTab = driver.getWindowHandle();
        Actions action= new Actions(driver);
        List<WebElement> socialMediaIcons = driver.findElements(By.xpath("//*[@id='ImageUrlNavigate']"));
        System.out.println("Size of list = " + socialMediaIcons.size());
        for (WebElement AllSocial : socialMediaIcons)
        {
            String Name =  AllSocial.getAttribute("href");
            System.out.println(Name);
            AllSocial.click();
        }
        driver.manage().timeouts().implicitlyWait(50, TimeUnit.SECONDS);        
                  action.keyDown(Keys.CONTROL).keyDown(Keys.SHIFT).sendKeys(Keys.TAB).build().perform();

    }

}
打包测试脚本;
导入java.util.ArrayList;
导入java.util.List;
导入java.util.concurrent.TimeUnit;
导入org.openqa.selenium.By;
导入org.openqa.selenium.Keys;
导入org.openqa.selenium.WebDriver;
导入org.openqa.selenium.WebElement;
导入org.openqa.selenium.firefox.FirefoxDriver;
导入org.openqa.selenium.interactions.Actions;
公共类TestSemiCustom{
公共静态void main(字符串[]args){
System.setProperty(“webdriver.gecko.driver”,“C:/geckodriver/geckodriver-v0.21.0-win64/geckodriver.exe”);
//System.setProperty(“webdriver.chrome.driver”,“C:\\Users\\Hassan\\Documents\\eclipseworkspace\\WebDriverProject\\lib\\chromedriver.exe”);
WebDriver=newfirefoxdriver();
//driver.manage().timeouts().implicitlyWait(40,TimeUnit.SECONDS);
驱动程序。获取(“http://www.example.com/");
driver.manage().timeouts().implicitlyWait(40,TimeUnit.SECONDS);
字符串oldTab=driver.getWindowHandle();
动作动作=新动作(驱动);
List socialmediacons=driver.findElements(By.xpath(“/*[@id='ImageUrlNavigate']);
System.out.println(“列表大小=“+socialMediaIcons.Size());
for(WebElement AllSocial:SocialMedia)
{
String Name=AllSocial.getAttribute(“href”);
System.out.println(名称);
AllSocial.click();
}
driver.manage().timeouts().implicitlyWait(50,TimeUnit.SECONDS);
action.keyDown(Keys.CONTROL).keyDown(Keys.SHIFT).sendKeys(Keys.TAB).build().perform();
}
}
最后一个用户将导航到父选项卡

但我收到以下错误:

JavaScript警告:,第1094行:返回语句后的代码不可访问

请注意,此社交媒体在页眉和页脚上使用相同的html代码

<div class="collapse navbar-collapse social-icon" id="socialwidget-nav">
 <ul id="HeaderSocialIcons" class="nav-pills">
     <li class="facebook-icon">
         <a id='ImageUrlNavigate' class='socialWidgetIcon' href='https://www.facebook.com/324421790958939' target = '_blank' style='margin:0px;'></a>
     </li>
     <li class="twitter-icon">
         <a id='ImageUrlNavigate' class='socialWidgetIcon' href='https://www.twitter.com' target = '_blank' style='margin:0px;'></a>
     </li>
     <li class="linkedin-icon">
         <a id='ImageUrlNavigate' class='socialWidgetIcon' href='https://www.linkedin.com' target = '_blank' style='margin:0px;'></a>
 </li>
 <li class="google-icon">
     <a id='ImageUrlNavigate' class='socialWidgetIcon' href='https://www.google.com1' target = '_blank' style='margin:0px;'></a>
     </li>
     <li class="youtube-icon">
     <a id='ImageUrlNavigate' class='socialWidgetIcon' href='https://www.youtube.com' target = '_blank' style='margin:0px;'></a>
     </li>
     <li class="instagram-icon">
         <a id='ImageUrlNavigate' class='socialWidgetIcon' href='https://www.Instagram.com' target = '_blank' style='margin:0px;'></a>
 </li>
 <li class="pinterest-icon">
     <a id='ImageUrlNavigate' class='socialWidgetIcon' href='https://www.pintrest.com' target = '_blank' style='margin:0px;'></a>
 </li>
 <li class="blog-icon">
     <a id='ImageUrlNavigate' class='socialWidgetIcon' href='/MyBlog.aspx' target = '_blank' style='margin:0px;'></a>
     </li>
 </ul>

我需要做什么?

您可以使用LeftCtrl+LeftClick打开所有文件

我在C#中添加了一个示例来演示它

Actions actions = new Actions(browser);
actions.KeyDown(Keys.LeftControl);
for (IWebElement socialIcon in allSocialIcons)
{
    actions.Click(socialIcon);
}      
actions.KeyUp(Keys.LeftControl)
    .Build()
    .Perform();

它将所有社会主义者添加到操作列表中,然后才执行它。

这是一个Javascript警告。如果你的代码不起作用,我猜是其他原因。它以什么方式不起作用?我想问题是,这个小部件多次在页面上使用相同的html代码放置在页眉和页脚上,这意味着它可以让我获得相同的xpth,当我申请循环时,会给我Web元素列表的大小16,页眉社交媒体链接8,页脚社交媒体链接8,这就是它将无限循环的原因。您能在1094行周围显示zomArbZJYcR.js文件吗?错误消息表示返回语句后有命令。return语句意味着metho的结束,因此它后面的任何命令都永远不能执行。什么是进入无限循环的原因?哪种代码?