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

如何使用Selenium和Python根据用户输入查找元素?

欧阳玺
2023-03-14
问题内容

以下是HTML结构:

<div class='list'>
  <div>
    <p class='code'>12345</p>
    <p class='name'>abc</p>
  </div>
  <div>
    <p class='code'>23456</p>
    <p class='name'>bcd</p>
  </div>
</div>

并且有一个config.py供用户输入。如果用户在config.code中输入23456,Selenium
python如何选择第二个对象?我find_by_css_selector()用来查找和选择对象,但是只能选择第一个对象,即 Code
=‘12345’
。我尝试使用find_by_link_text(),但这是<p>元素而不是<a>元素。任何人都可以帮助.....


问题答案:

要根据用户使用Selenium和python的输入来定位元素,您需要为引入WebDriverWait,visibility_of_element_located()并且您可以使用以下两种定位器策略之一:

  • 在中使用变量XPATH
        user_input = '23456'
    element = WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, "//div[@class='list']//div/p[@class='code' and text()='" +user_input+ "']")))
  • %s在中使用XPATH
        user_input = '23456'
    element = WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, "//div[@class='list']//div/p[@class='code' and text()='%s']"% str(user_input))))
  • format()在中使用XPATH
        user_input = '23456'
    element = WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, "//div[@class='list']//div/p[@class='code' and text()='{}']".format(str(user_input)))))
  • 注意 :您必须添加以下导入:
        from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support import expected_conditions as EC


 类似资料:
  • 我想让程序根据我的扫描仪输入从ArrayList中进行选择。比如,我写早餐和甜食,它必须随机列出早餐甜食,并打印随机索引。 我还在学习Java,我只是在玩,并试图编码小项目来训练它。 下面是我已经写过的课程: 我是否可以将列表存储在变量中,可能是这样的: 我知道很难理解我,但英语不是我的主要语言,希望它能被理解。

  • 问题内容: 我有一种情况(在selenium测试期间),在这种情况下,用户将收到安全代码。然后,用户必须先输入安全代码,然后才能继续操作。 我不太确定如何获得用户输入的值。我浏览了selenium文档,并提出了这个建议。不幸的是,它并不是很有效。 有人可以指出我正确的方向吗? 问题答案: 似乎您必须先接受并关闭提示,然后才能存储和使用该值

  • 因此,我一直在尝试使用selenium在python上定位用户名输入框。我尝试了xpath、id、类名等。 我还知道显式等待元素加载。然而,尽管如此,没有运气。我检查了元素是否在我忽略的iframe中,但找不到它。 这是用户输入框元素。 下面是我为定位元素而编写的代码。

  • 问题内容: 当我转到某个网页时,我正在尝试查找某个元素和一段文本: 这不起作用:( 它给出了复合类名的错误…) 所以我尝试了这个:( 但是我不确定它是否有效,因为我不太了解在selenium中使用CSS选择器的正确方法…) 找到span元素后,我想找到其中的数字 (内容) 。 CSS选择器,类名和查找元素文本的任何帮助都将非常有用! 谢谢。 哦! 我的另一个问题是,其中有多个确切的span元素,但

  • 我试图找到一种方法来获取div的值,但是我无法通过Xpath或CSSSelector找到元素。在这两种情况下(Xpath和cssSelector),Eclipse控制台都会显示错误消息: org.openqa.selenium.nosuchelementException:没有这样的元素:找不到元素:{“method”:“XPath”,“selector”:“//b[text()='protoco

  • 我已经花了几个小时试图找到使用Selenium WebDriver查找元素的方法。我假设我需要使用driver.find元素(By.xpath ("")), 但我不太确定如何使用。 我需要找到并单击“clickon”元素。问题是该元素的一部分正在更改(请参见屏幕截图),我需要从文件中提取并放入xpath。 我将感谢任何帮助。