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 使用se webdriver替换网页中的图像_Java_Selenium - Fatal编程技术网

Java 使用se webdriver替换网页中的图像

Java 使用se webdriver替换网页中的图像,java,selenium,Java,Selenium,我想替换我网页中的某些图像。 我用来查找图像的代码是: List<WebElement> elements = driver.findElements(By.xpath("//div[@jsname='pCbVjb']//button[@jsname='WR0adb']//img[contains(@srcset, 'https://lh3.googleusercontent.com')]")); int size=elements.size(); 因此,我正在从excel工作表

我想替换我网页中的某些图像。 我用来查找图像的代码是:

 List<WebElement> elements = driver.findElements(By.xpath("//div[@jsname='pCbVjb']//button[@jsname='WR0adb']//img[contains(@srcset, 'https://lh3.googleusercontent.com')]"));
int size=elements.size();
因此,我正在从excel工作表中读取要替换的图像URL的数据 但我无法替换图像

那个么,我需要在图片中传递什么参数来替换来自工作表的URL

如果我硬编码相同的工作对我来说很好,但我想使它动态


请帮我解决这个问题

没有足够的细节来为您提供适当的解决方案,但我认为这是可以为您带来解决方案的

  • 您有两个动态元素:元素本身和链接,因此需要向脚本中传递两个参数:元素和要注入的值
  • 您需要一个循环而不是
    元素。获取(0)
  • 因此,脚本通常如下所示:

    List<WebElement> elements = driver.findElements(...));
    JavascriptExecutor js = (JavascriptExecutor) driver;
    
    for( WebElement element : elements ) {
       // get next image, not sure how you do it;
       String nextImage = getNextImageToBeReplacedURL();
       js.executeScript("arguments[0].setAttribute('srcset' , arguments[1])", element, nextImage );
    }
    
    List elements=driver.findElements(…);
    JavascriptExecutor js=(JavascriptExecutor)驱动程序;
    for(WebElement:elements){
    //获取下一张图片,但不确定如何操作;
    字符串nextImage=getNextImageToBeReplacedURL();
    js.executeScript(“参数[0].setAttribute('srcset',参数[1])”,元素,下一个页面);
    }
    

    其中
    getNextImageToBeReplacedURL
    返回来自Excel的动态值。

    为什么要替换页面上图像的URL?你知道这不是永久的,对吧?一旦刷新页面,所有内容都会恢复到原来的状态,其他任何访问页面的人都不会看到这一点。
    List<WebElement> elements = driver.findElements(...));
    JavascriptExecutor js = (JavascriptExecutor) driver;
    
    for( WebElement element : elements ) {
       // get next image, not sure how you do it;
       String nextImage = getNextImageToBeReplacedURL();
       js.executeScript("arguments[0].setAttribute('srcset' , arguments[1])", element, nextImage );
    }