我有一个以下的问题。在图片波纹管我想填补一些文字到第二(红色)领域。
我的代码:
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import Select
from selenium.webdriver.common.action_chains import ActionChains
def set_scraper():
"""Function kills running applications and set up the ChromeDriver."""
options = webdriver.ChromeOptions()
options.add_argument("--start-maximized")
driver = webdriver.Chrome("/usr/lib/chromium-browser/chromedriver", options=options)
return driver
def main() -> None:
"""Main function that is call when the script is run."""
driver = set_scraper()
driver.get("https://nahlizenidokn.cuzk.cz/VyberBudovu/Stavba/InformaceO")
pokus = driver.find_element(By.XPATH, '/html/body/form/div[5]/div/div/div/div[3]/div/fieldset/div[2]/div[2]/input[1]')
driver.implicitly_wait(10)
ActionChains(driver).move_to_element(pokus).send_keys("2727").perform()
问题是它将"2727"发送到第一个字段,而不是红色字段。尽管/html/body/form/div[5]/div/div/div/div[3]/div/fieldset/div[2]/div[2]/input[1]
是第二个字段的完整xpath。请问您知道为什么吗?
3条答案
按热度按时间y1aodyip1#
可以使用XPath根据子元素中的唯一文本"Obec"定位父元素,然后定位适当的input元素。
在这里,我使用的是看起来不会改变的固定属性值。
下面的代码是有效的:
结果是:
3zwtqj6y2#
尝试以下选项
atmip9wb3#
您可以使用下面的XPATH在第二个文本字段中输入文本: