当前位置: 首页 > 面试题库 >

单击使用Selenium 3 Webdriver的图像映射中的特定项目

姜淇
2023-03-14
问题内容

我正在使用Selenium 3.3.1和Java Webdriver绑定,并且需要单击页面上图像映射中的特定项。这是图像地图的HTML

<img id="menu1" name="menu1" src="../../images/images/menu23t.gif" width="950" height="68" border="0" usemap="#Map">

<map name="Map">
    <area id="manager_indx" shape="rect" coords="220,13,297,60" href="../../backend/manager/index.php" target="_parent">
    <area id="pos" shape="rect" coords="306,13,336,60" href="http://10.10.10.99:8080/frontend/index.html" target="_parent">
    <area id="end_of_day" shape="rect" coords="347,13,410,60" href="../../backend/manager/end_of_day.php" target="_parent">
    <area id="customer" shape="rect" coords="415,10,470,60" href="../../backend/managecustomers/index.php" target="_parent">
    <area id="employee" shape="rect" coords="477,12,537,60" href="../../backend/employee_f/index.php" target="_parent">
    <area id="reports" shape="rect" coords="540,12,590,61" href="#" onclick="chk_report_security()">
    <area id="cash" shape="rect" coords="596,13,640,60" href="../../backend/manage_register/index.php" target="_parent">
    <area id="inventory" shape="rect" coords="650,12,705,60" href="../../backend/inventory/index.php" target="_parent">
    <area id="configuration" shape="rect" coords="720,11,802,60" href="../../backend/generalsetup/configuration.php" target="_parent">
    <area id="logon" shape="rect" coords="815,11,848,60" href="http://10.10.10.99:8080/frontend/index.html" target="_parent">
    <area id="exit" shape="rect" coords="852,11,890,61" href="javascript:javascript:exit_logout();">
    <area id="help" shape="rect" coords="892,14,937,60" href="javascript:top.banner.openContainer(window.parent.banner.isThrive);" target="_parent">
</map>

这是我尝试使它单击ID为“报告”的区域的内容。

WebElement banner = driver.findElement(By.cssSelector("map"));
WebElement area = banner.findElement(By.id("reports"));
area.click();//This click isn't working

我也尝试过ID,cssSelector和xpath

driver.findElement(By.id("reports")).click();

driver.findElement(By.cssSelector("#reports")).click();

driver.findElement(By.xpath("//*[@id=\"reports\"]")).click();

还有其他xpath变体,例如// area [@ id =’reports’]。

我主要使用Firefox和Geckodriver
0.15.0,但是它也在其他浏览器中发生。早在2011年就为此打开了一个错误,但该错误仅被确定为chrome,而现在该线程已经很老了,基本上没有用。如果有人最近做过这件事,那么如果他们可以分享自己的做事方式将大有帮助。谢谢!


问题答案:

回答我自己的问题,因为答案来自评论中的建议。答案是使用JavaScript执行器。就像是:

WebElement banner = driver.findElement(By.cssSelector("map"));
WebElement area = banner.findElement(By.id("reports"));

JavascriptExecutor executor = (JavascriptExecutor)driver;
executor.executeScript("arguments[0].click();", area);


 类似资料:
  • 我想用javascript onclick创建一个事件,它将启用单击的图像并禁用其他图像。 例如,如果我有6张图片,我如何做:我想点击任何图片,例如图片3,那么图片3将被启用,图片1、2、4、5、6将被禁用。 几秒钟后,我想点击1号图片,然后它会变得活跃,而2,3,4,5,6会被禁用。 我怎么能这么做?

  • 我有4张桌子: 库存(库存ID、可用数量) 一个客户可以有多个订单,而一个订单由多个orderDetails项目组成。我正在尝试将库存项目存储在由库存项目和数量整数组成的映射中。 当我尝试以这种方式持久化它时,第一个库存项目将以1的orderID添加到Order详细信息表中。但是下一个是使用2的orderID插入的(不存在)。 有什么帮助吗?

  • 关于切片 网页可以包含许多元素 - HTML 文本、位图图像和矢量图等等。在 Illustrator 中,可以使用切片来定义图稿中不同 Web 元素的边界。例如,如果图稿包含需要以 JPEG 格式进行优化的位图图像,而图像其他部分更适合作为 GIF 文件进行优化,则可以使用切片隔离位图图像。使用“存储为 Web 和设备所用格式”命令将图稿存储为网页时,您可以选择将每个切片存储为自身具有格式、设置以

  • 我正在OnItemClickListener接口的OnItemClicked(int position,view v)方法中传递position和view。现在,在我的ViewReceptionistActivity中,我要检查单击了哪个项和哪个子部分。如果用户单击图像,则执行任务A,如果用户单击名称,则执行任务B,依此类推。 下面是我的布局文件-viewreceptionist_item.xml

  • 问题内容: 是否可以仅从JSON树中的特定节点(和“向下”)进行Jackson的解组? 用例是可扩展的文档格式。我想走一棵树,然后将当前路径发布到一组可扩展的插件,以查看用户是否正在使用和知道如何处理该文档部分的插件。 我希望插件作者不必处理API或流API 的底层细节;取而代之的是,只需传递一些上下文和一个特定的,然后就可以使用可爱且方便的方法来解组其类的实例,并将传递的节点视为树的根。 问题答

  • 问题内容: 使用Graphics2D,我如何拍摄黑白图像,并用来定义 在另一幅图像上应该渲染和不应该渲染的图像? 例如,如果我有一个图像,例如一个字段,并且在该字段上是一头 母牛,那么在用Java渲染时 , 在相同尺寸的另一幅图像上,我会在黑色背景上以与母牛相同的坐标绘制一个白框图像会是 全黑的,除了我有白盒子的那头牛? 问题答案: 编辑:基于聊天中的长时间讨论,很明显有人 对意图有误解,而最初的