【发布时间】:2018-03-19 20:20:40
【问题描述】:
我在过去 2 天里进行了搜索,但没有找到可行的解决方案。我目前在 OSX 上使用 Python 3.6.4 和带有 chromedriver 的 v3.11.0 Selenium。
所以我希望实现的是找到与给定字符串匹配的 innerHTML 的下拉选项标记的坐标。
HTML如下:
<div class="select-wrapper">
<select id="product-select" name="id" class="">
<option value="1532273459205">Small</option>
<option value="1532273491973">Medium</option>
<option value="1532273524741">Large</option>
<option value="1532273557509">X-Large</option>
</select>
</div>
我的代码(我还在此代码之前为下拉菜单添加了 .click() 以确保下拉菜单实际可见):
size = input("What size do you want?")
for option in driver.find_elements_by_tag_name('option'):
if (option.get_attribute('innerHTML')) == size:
print(option.location)
但是,这会返回{'x':0, 'y':0} 的字典。
由于它没有返回错误,我猜这是因为该元素不可见。因此,我进行了更多研究并尝试将其添加到我上面的代码中。 WebDriverWait(driver,10).until(EC.presence_of_element_located((By.XPATH, '//option')))
但是,这仍然不起作用,仍然可以给出 0,0 作为坐标。我还是个新手,所以也许我在这里没有抓住一些东西。提前非常感谢,如果你们需要更多信息,请告诉我!谢谢!
【问题讨论】:
-
为什么需要选项的坐标?
-
@ian 我希望创建某种脚本来点击与输入尺寸相对应的特定坐标!
-
您打算如何使用坐标?即,你打算用它们做什么 Selenium 调用?您只是想在下拉列表中选择一个选项吗?或者您是否有某些特定原因要尝试执行原始鼠标点击?
-
哦,我正计划将坐标提供给 pyautogui,以便鼠标点击另一个 chrome 会话(正常会话),所以我认为 select 方法不会起作用
-
为什么需要另一个 Chrome 会话?为什么不也使用 Selenium 控制该会话?
标签: python-3.x selenium-chromedriver