繁体   English   中英

如何在 selenium python 中找到找到的元素中的跨度

[英]How to find span in found element in selenium python

我想在 selenium 找到的元素中找到文本。 看看这个 例如,我想在产品卡上点击“安全交易”

我试着这样做

class ProductCard:
    def __init__(self, driver):
        self.driver = driver

    div = (By.XPATH, "//div[@class='a-box-inner a-padding-base']")

    def easyToAssemble(self):
            self.driver.find_element(*ProductCard.div).find_element(By.XPATH, "//span[contains(text(),'Secure transaction')]").click()

            return True

此代码不起作用,我怀疑问题出在那里

self.driver.find_element(*ProductCard.div).find_element(By.XPATH, "//span[contains(text(),'Secure transaction')]")

我不知道如何解决这个问题。

我想知道如何在 python 中通过 selenium 找到元素

在 Selenium webdriver 的帮助下,我们可以定位跨度 class 中的元素,而不是唯一 id。 我们可以借助定位符 xpath、css 或 class 名称来识别具有 class 属性的元素。

要使用这些定位器定位元素,我们必须使用 By.xpath、By.xpath 或 By.cssSelector 方法。 然后将定位器值作为参数传递给此方法。

让我们看看跨度为 class 的按钮的 html 代码并尝试识别它。

 from selenium import webdriver #set chromodriver.exe path driver = webdriver.Chrome(executable_path="C:\chromedriver.exe") driver.implicitly_wait(0.5) #launch URL driver.get("https://www.stackoverflow.com/index.htm") l = driver.find_element_by_id("textemail") l.send_keys("abc@gmail.com") #get value entered s = l.get_attribute('value') #identify element with span class m = driver.find_element_by_xpath("//span[@class='input_group_button']") #verify if element present b = m.is_displayed() if b: print("Element with span class available") else: print("Element with span class not available") #close browser driver.close()

错误:元素 <span>...</span> 在点 (855, 565) 不可点击。

好的,所以。 让我们点击它的父母。

您只需在 xpath 的末尾添加/..

self.driver.find_element(*ProductCard.div).find_element(By.XPATH, "//span[contains(text(),'Secure transaction')]/..").click()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM