当我想通过特定文本+变量搜索它时,无法通过元素包含的特定文本找到带有硒的元素
cant find an element with selenium by a specific text the element contains, when i want to search for it by the specific text + a variable
我想通过它包含的特定文本来查找元素。效果很好,但问题来了。
有多个元素,所有元素都有包含“EU”和数字的特定文本...
例如:“EU 40”或“EU 30”。现在我想用一个变量替换数字,这样我就可以决定特定文本应该包含什么数字。
让我向您展示我的代码:
real_size_btn = browser.find_element_by_xpath("//button[text()='EU 40']")
real_size_btn.click()
此代码有效,但无效的是此代码:
size = input("size:")
real_size_btn = browser.find_element_by_xpath("//button[text()='EU "+size+"']")
real_size_btn.click()
每次我 运行 第二个代码它说:"no such element: Unable to locate element: {"method":"xpath","selector":"//button[text()='EU 41']"}"
希望有人能解决这个问题,我将不胜感激。
稍作修改:
这是主要元素:
欧盟 40
在主元素之上是这个元素:
<input aria-describedby="pdp-buytools-low-inventory-messaging" id="skuAndSize__26126342" name="skuAndSize" type="radio" class="visually-hidden" value="26126342:7">
在主要元素下是几乎相同的元素,但有一点不同,因为其他元素是其他鞋码。
例如,这是另一个鞋码的元素:
<label for="skuAndSize__26126330" tabindex="-1" class="css-xf3ahq">EU 39</label>
这个元素上面是这个:
<input aria-describedby="pdp-buytools-low-inventory-messaging" id="skuAndSize__26126330" name="skuAndSize" type="radio" class="visually-hidden" value="26126330:6.5">
希望对您有所帮助。
你能试试这个吗
real_size_btn = browser.find_element_by_xpath("//button[contains(.,'EU "+size+"')])";
你为什么不用 f-strings?
some_number = "your number"
real_size_btn = browser.find_element_by_xpath(f"//button[text()='EU {some_number}']")
此外,
您可以将您的号码放入这样的列表中:
your_list = [10, 20, 30, 40, 50]
并以 your_list[0]
、your_list[1]
等方式访问它们。
我想通过它包含的特定文本来查找元素。效果很好,但问题来了。 有多个元素,所有元素都有包含“EU”和数字的特定文本...
例如:“EU 40”或“EU 30”。现在我想用一个变量替换数字,这样我就可以决定特定文本应该包含什么数字。 让我向您展示我的代码:
real_size_btn = browser.find_element_by_xpath("//button[text()='EU 40']")
real_size_btn.click()
此代码有效,但无效的是此代码:
size = input("size:")
real_size_btn = browser.find_element_by_xpath("//button[text()='EU "+size+"']")
real_size_btn.click()
每次我 运行 第二个代码它说:"no such element: Unable to locate element: {"method":"xpath","selector":"//button[text()='EU 41']"}"
希望有人能解决这个问题,我将不胜感激。
稍作修改: 这是主要元素: 欧盟 40
在主元素之上是这个元素:
<input aria-describedby="pdp-buytools-low-inventory-messaging" id="skuAndSize__26126342" name="skuAndSize" type="radio" class="visually-hidden" value="26126342:7">
在主要元素下是几乎相同的元素,但有一点不同,因为其他元素是其他鞋码。 例如,这是另一个鞋码的元素:
<label for="skuAndSize__26126330" tabindex="-1" class="css-xf3ahq">EU 39</label>
这个元素上面是这个:
<input aria-describedby="pdp-buytools-low-inventory-messaging" id="skuAndSize__26126330" name="skuAndSize" type="radio" class="visually-hidden" value="26126330:6.5">
希望对您有所帮助。
你能试试这个吗
real_size_btn = browser.find_element_by_xpath("//button[contains(.,'EU "+size+"')])";
你为什么不用 f-strings?
some_number = "your number"
real_size_btn = browser.find_element_by_xpath(f"//button[text()='EU {some_number}']")
此外, 您可以将您的号码放入这样的列表中:
your_list = [10, 20, 30, 40, 50]
并以 your_list[0]
、your_list[1]
等方式访问它们。