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

从“ onclick”部分值中查找并单击项目

施永宁
2023-03-14
问题内容

是否可以通过元素的部分值单击selenium中的onclick元素?

页面上有多个输入项目,我只需要选择一个带有特定字符串的项目即可。

例如:

<input name="booksubmit" type="button" class="searchAvailBtnSelect" value="Select" onclick="setTimeout('disableSelect()',1);bookNowSubmit('0165','1BD','000000452014022703S000016500010708F ','101400','156000','3','02/27/2014','false','false','false','false','true','false','false','EXPRESS','63','1 Bedroom Deluxe','false','AC')">
<input name="booksubmit" type="button" class="searchAvailBtnSelect" value="Select" onclick="setTimeout('disableSelect()',1);bookNowSubmit('0165','2BD','000000452014022703S000016500010708F ','101400','156000','3','02/27/2014','false','false','false','false','true','false','false','EXPRESS','63','2 Bedroom Deluxe','false','AC')">
<input name="booksubmit" type="button" class="searchAvailBtnSelect" value="Select" onclick="setTimeout('disableSelect()',1);bookNowSubmit('0165','1BD','000000452014022703S000016500010708F ','101400','156000','3','02/27/2014','false','false','false','false','true','false','false','EXPRESS','63','1 Bedroom Presidential','false','AC')">

如果您注意到快要结束了,这里有“ 1卧室豪华房”,“ 2卧室豪华房”和“
1卧室总统房”。由于它是一个输入项目,因此没有可供我过滤的文本,但是我只需要选择一个特定的项目,例如2 Bedroom Deluxe。

我有什么可以做的:

buttons = driver.find_elements_by_name('booksubmit')
for button in buttons:
    if button ........

还是其他?我目前正在使用beautifulsoup4来解析页面上的html并检索与该项目关联的文本,因此我不知道是否可以将其合并。从视觉上看,该页面是HTML表格,其格式为:

+--------------------------------------------------------------------+
|    1 Bedroom Deluxe    |   $25   |   [button i don't care about]   |
|------------------------+---------+---------------------------------|
|    2 Bedroom Deluxe    |   $50   |   [button i'm trying to click]  |
|------------------------+---------+---------------------------------|
| 1 Bedroom Presidential |   $50   |   [button i don't care about]   |
+--------------------------------------------------------------------+

编辑:

我猜发布得太早了。紧接着,一个同事提出并建议通过Xpath通过以下方式找到元素:

driver.find_element_by_xpath('//input[contains(@onclick,"1 Bedroom Deluxe")]')

问题答案:

XPath或CssSelector都可以。无需任何循环,但定位器简单明了。

driver.find_element_by_xpath(".//input[contains(@onclick, '1 Bedroom Deluxe')]")

driver.find_element_by_css_selector("input[onclick*='1 Bedroom Deluxe']")


 类似资料:
  • 为了在JList中的项目旁边获得图标,我按照教程创建了一个基本类来存储我的JList项目。然后我使用这个类作为我的listmodel来打印每个项目的图标和文本。 Im还使用getListCellRendererComponent来打印文本和图标。 我的ListItem类如下所示: 例如元素1、元素2 我想看看所有的项目,并改变名称和图标…

  • 问题内容: 在这种情况下,我需要使用Selenium api 查找并单击“ 关于” 链接,但无法执行此操作。 我所做的是 但它不起作用 问题答案: 以我的经验,Selenium API在这种方式上有很多缺陷。通常只能通过重新选择选择器来克服它们。例如,您可以尝试使用XPath选择器来获取元素: 另外,如果您尝试使用Internet Explorer,则可能不会单击该元素而是模拟按下Enter键来帮

  • 问题内容: 这是我的代码。我想知道单击了哪个,然后在新框架中显示该ImageIcon。 e.getSource()无法正常工作… 问题答案: 如果将MouseListener直接添加到JLabel,则可以在JOptionPane中轻松显示按下的标签的图标: 例如:

  • 要移至“电子产品”菜单: 要移动移动菜单: 要单击手机: 已尝试上述代码,但未工作显示错误消息: Xpath不存在

  • 点击一个元素后,如何使用selenium找到当前url?我有这个网站:http://www.runningintheusa.com/Classic/View.aspx?RaceID=5622 我有代码(假设所有相关的库都已导入) 我运行代码,它只返回原来的网址是http://www.runningintheusa.com/Classic/View.aspx?RaceID=5622 我怎么能找到的网

  • 我正在使用Python和Selenium。我正在尝试自动化一个应用程序,在这个应用程序中,我需要从下拉菜单中提取最高值。这些值不断变化,因此我无法将静态xpath传递给selenium python代码。 我尝试了下面的代码,但都不起作用。 这个想法是找到所有的值并提取顶部的值。当我打印时,我什么也没看到。我通过检查下拉菜单提取了以下超文本标记语言。 现在这些值不断变化,因此我无法在xpath中传