我无法在占位符中输入文本的重量、长度、宽度和高度.

这对我不起作用.发送密钥().它停留在占位符中,什么也不做!!

有人能帮我解决吗?我想不出来!!!

from selenium.webdriver.chrome.options import Options
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import Select
from time import sleep
import pandas as pd


chrome_options = Options()
# chrome_options.add_argument("--headless")
chrome_options.add_experimental_option("detach", True)

driver = webdriver.Chrome(ChromeDriverManager().install(),options=chrome_options)
driver.get("https://calculator.shipany.io/")
wait = WebDriverWait(driver, 5)

dropdownOrigin = wait.until(EC.visibility_of_element_located((By.XPATH, "//div[@class='booking-form']//select[.//option[contains(.,'Origin')]]")))
selectOrigin = Select(dropdownOrigin)
selectOrigin.select_by_visible_text("Hong Kong")

dropdownDestination = wait.until(EC.visibility_of_element_located((By.XPATH, "//div[@class='booking-form']//select[.//option[contains(.,'Destination')]]")))
selectDest = Select(dropdownDestination)
selectDest.select_by_visible_text("Hong Kong")

weight = wait.until(EC.visibility_of_element_located((By.XPATH, "//*[@id='i_form']/div/div[2]/div[3]/input[1]")))
weight.send_keys("1")

length = wait.until(EC.visibility_of_element_located((By.XPATH, "//*[@id='dimension']/input[2]")))
length.send_keys("1")

width = wait.until(EC.visibility_of_element_located((By.XPATH, "//*[@id='dimension']/input[3]")))
width.send_keys("1")

height = wait.until(EC.visibility_of_element_located((By.XPATH, "//*[@id='dimension']/input[6]")))
height.send_keys("1")

button = wait.until(EC.visibility_of_element_located((By.XPATH, "//*[@id='i_form']/div/div[2]/div[5]/button[1]")))
button.click()

推荐答案

它之所以不起作用是因为style属性.它表示display: none;需要将元素的样式更改为display: block;才能访问该元素.

使用java脚本执行器更改元素的样式.

enter image description here

driver.get("https://calculator.shipany.io/")
wait=WebDriverWait(driver, 5)
dropdownOrigin =wait.until(EC.visibility_of_element_located((By.XPATH, "//div[@class='booking-form']//select[.//option[contains(.,'Origin')]]")))
selectOrigin=Select(dropdownOrigin)
selectOrigin.select_by_visible_text("Hong Kong")

dropdownDestination =wait.until(EC.visibility_of_element_located((By.XPATH, "//div[@class='booking-form']//select[.//option[contains(.,'Destination')]]")))
selectDest=Select(dropdownDestination)
selectDest.select_by_visible_text("Hong Kong")

weight=wait.until(EC.presence_of_element_located((By.XPATH, "//input[@placeholder='Weight(kg)*']/following::input[1]")))
driver.execute_script("arguments[0].style.display = 'block';",weight)
weight.send_keys("1")

length=wait.until(EC.presence_of_element_located((By.XPATH, "//input[@placeholder='L(cm)']/following::input[1]")))
driver.execute_script("arguments[0].style.display = 'block';",length)
length.send_keys("1")

width=wait.until(EC.presence_of_element_located((By.XPATH, "//input[@placeholder='W(cm)']/following::input[1]")))
driver.execute_script("arguments[0].style.display = 'block';",width)
width.send_keys("1")

Height=wait.until(EC.presence_of_element_located((By.XPATH, "//input[@placeholder='H(cm)']/following::input[1]")))
driver.execute_script("arguments[0].style.display = 'block';",Height)
Height.send_keys("1")

Python相关问答推荐

Locust请求中的Python和参数

使用SciPy进行曲线匹配未能给出正确的匹配

连接两个具有不同标题的收件箱

OR—Tools CP SAT条件约束

SQLAlchemy Like ALL ORM analog

NumPy中条件嵌套for循环的向量化

部分视图的DataFrame

从嵌套的yaml创建一个嵌套字符串,后面跟着点

需要帮助重新调整python fill_between与数据点

Polars asof在下一个可用日期加入

处理具有多个独立头的CSV文件

在Admin中显示从ManyToMany通过模型的筛选结果

具有相同图例 colored颜色 和标签的堆叠子图

python sklearn ValueError:使用序列设置数组元素

判断Python操作:如何从字面上得到所有decorator ?

普洛特利express 发布的人口普查数据失败

Python:在cmd中添加参数时的语法

在Django REST框架中定义的URL获得404分

try 使用RegEx解析由标识多行文本数据的3行头组成的日志(log)文件

生产者/消费者-Queue.get by list