当前位置: 首页 > 知识库问答 >
问题:

如何通过Selenium-Python访问rect类型元素

虞俊美
2023-03-14

dom中有一个rect对象:

<rect class="slv-blank" id="id123" height="8.8" stroke-width="1px" width="18.8" x="59.2" y="37.5"></rect>

我试图用以下代码搜索它:

WebDriverWait(driver, 1).until(ec.presence_of_element_located(("xpath", '//rect[@id="id123"]'))).click()

这是行不通的。

但以下情况确实如此:

WebDriverWait(driver, 1).until(ec.presence_of_element_located(("xpath", '//*[name()="rect"][@id="id123"]'))).click()

关于为什么第一个不起作用有什么线索吗?

共有2个答案

方波娃
2023-03-14

使用Action类或JavaScriptExecAdvisor。

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as ec
from selenium.webdriver.common.action_chains import ActionChains
elememnt=WebDriverWait(driver, 1).until(ec.presence_of_element_located(("xpath", '//*[@id="id123"]')))
ActionChains(driver).move_to_element(elememnt).click().perform()

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as ec
from selenium.webdriver.common.action_chains import ActionChains
elememnt=WebDriverWait(driver, 1).until(ec.presence_of_element_located(("xpath", '//*[@id="id123"]')))
driver.execute_script("arguments[0].click();",elememnt)
姬英耀
2023-03-14

<代码>

举个例子:

<svg viewBox="0 0 220 100" xmlns="http://www.w3.org/2000/svg">
  <!-- Simple rect element -->
  <rect x="0" y="0" width="100" height="100" />

  <!-- Rounded corner rect element -->
  <rect x="120" y="0" width="100" height="100" rx="15" ry="15" />
</svg>
  • x:这个属性决定了矩形的x坐标。
    • 值类型:|;默认值:0;动画:yes
    • 值类型:|;默认值:0;动画:yes
    • 值类型:自动| |;默认值:自动;动画:是的
    • 值类型:自动| |;默认值:自动;动画:是的
    • 值类型:自动| |;默认值:自动;动画:是的
    • 值类型:自动| |;默认值:自动;动画:是的
    • 值类型:;默认值:无;动画:是

    注意:从SVG2开始,x、y、width、height、rx和ry是几何体属性,这意味着这些属性也可以用作该元素的CSS属性。

    作为<代码>

    >

    //*[name()="svg"]
    

    对于

    //*[name()="svg"]/*[name()="g"]
    

    对于

    //*[name()="svg"]/*[name()="g"]/*[name()="rect"]
    //*[name()="svg"]/*[name()="rect"]
    

    你可以在这里找到几个相关的详细讨论

    • 如何通过Java使用XPath和Selenium WebDriver点击SVG元素
    • 无法通过剑道UI图表上的xpath定位SVG元素

 类似资料:
  • 问题内容: dom中有一个直肠对象: 我正在尝试使用以下代码进行搜索: 这是行不通的。 但是以下内容可以: 关于第一个为什么不起作用的任何线索? 问题答案: 所述元件是一个基本的SVG形状创建矩形,可以通过拐角的位置,它们的宽度和它们的高度限定。矩形的角可能会变圆。 一个例子: 属性 的属性的是元素如下: :此属性确定矩形的x坐标。 值类型:| ; 默认值:0 动画:是 :此属性确定矩形的y坐标。

  • 以下是我试图单击的按钮的HTML代码: 我可以使用XPath/Class Name/CSS选择器点击按钮的可能方式有哪些? 我做了如下尝试:

  • 问题内容: 我正在使用selenium,并且正在使用功能FindElements,所以我正在获取实现IReadOnlyCollection接口的元素。我想遍历列表,但似乎IReadOnlyCollection没有诸如Get(int index)或操作[]的实现之类的任何方法。 我想避免将结果转换为List或数组,因为我只想访问元素以读取它们。 目前,我不想使用foreach,因为我需要管理索引,以

  • 问题内容: 考虑像这样的字典 例如,如何访问该词典的特定元素?例如,我想在格式化Apple的第一个元素(在我们的情况下仅是“ American”)之后打印第一个元素。 附加信息上面的数据结构是通过在python函数中解析输入文件创建的。一旦创建,它在该运行中将保持不变。 我在函数中使用此数据结构。 因此,如果文件发生更改,则下次运行此应用程序时,文件的内容将有所不同,因此此数据结构的内容将有所不同

  • 问题内容: 我敢肯定,这已经在某个地方得到了回答,因为这是一个非常基本的问题-但是,对于我的一生,我无法在网上找到答案。我觉得自己是个白痴,但是我不得不问,这是: 我正在编写一个python代码,该代码将生成域中所有页面地址的列表。这是使用selenium2完成的-当我尝试访问由selenium产生的所有链接的列表时,会发生我的问题。 这是我到目前为止的内容: 该变量不包含在页面上找到的链接- 而

  • 正在尝试访问中男式外饰部分下的“立即购买”按钮https://shop.polymer-project.org/在chrome浏览器(V51)的JS控制台上使用以下代码: 我试图在我的自动化测试中访问相同的元素,使用selenium,第1行: